【问题标题】:NotifyDataSetChanged from fragment container来自片段容器的 NotifyDataSetChanged
【发布时间】:2015-05-05 21:56:55
【问题描述】:

我有一个带有Activity 的应用程序,它承载了ListFragmentEditTextButton。当用户按下Button时,我想将EditText中的文字添加到ListFragment中。我知道要这样做,我必须调用Fragment 的适配器的notifyDataSetChanged() 方法,但我现在不知道该怎么做。我也不知道如何调用适配器的 add 方法,但我觉得如果我知道如何做一个,我就能弄清楚如何做另一个。

任何帮助都会很棒。

编辑:进一步澄清:

所以托管Activity (ThreadContainer.java) 膨胀了它的布局,其中包含ListFragment,如下所示:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_thread_container);
        ...

这里是activity_thread_container.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.claymon.android.cryptosms.ThreadContainer">

<fragment
    android:id="@+id/thread_container"
    android:name="com.claymon.android.cryptosms.MessageFragment"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/newMessageText"/>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/newMessageText"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:inputType="text|textMultiLine"
    android:focusable="true"
    android:maxLines="4"
    android:maxLength="2000"
    android:scrollHorizontally="false"
    android:stackFromBottom="true"
    android:transcriptMode="alwaysScroll"
    android:layout_toLeftOf="@+id/sendButton"
    android:layout_toStartOf="@+id/sendButton"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/send"
    android:id="@+id/sendButton"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"/>

然后,扩展ListFragmentMessageFragment 仅使用相当简单的自定义ArrayAdapter 显示一些预定数据。这里的代码或多或少无关紧要。我想做的是从 ThreadContainer.java 中调用我的自定义 ArrayAdapter 方法。基本上,我需要弄清楚如何访问我在扩展布局时创建的片段。

抱歉最初的问题很糟糕。

【问题讨论】:

  • 你能添加一些代码吗?喜欢这个适配器的实现吗?
  • 添加了一些代码并澄清了我的问题。只需要弄清楚如何从创建它的 Activity 中调用我的片段的方法之一。
  • 我的答案不是你想要的
  • 其实,预编辑是完美的!虽然这两种方法都有效。感谢您的帮助!

标签: android android-fragments android-listfragment


【解决方案1】:

我想做的是从 ThreadContainer.java 中调用我的自定义 ArrayAdapter 的方法。基本上,我需要弄清楚如何访问我在扩展布局时创建的片段

当您添加Fragment 时,向其提供Tag 并通过Tag 检索它FragmentMananger.findFragmentByTag("") 返回Frament,然后您将Fragment 转换为您的首选类并调用您的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多