【问题标题】:Update/refresh listview in a fragment & custom adapter在片段和自定义适配器中更新/刷新列表视图
【发布时间】:2012-07-12 20:33:35
【问题描述】:

当 Fragment 2 在 onActivityCreated() 中有代码以加载数据、创建自定义数组适配器并将其设置在 ListView 上时,我需要从 Fragment 1 调用什么来强制更新/刷新 Fragment 2?

有没有办法更新/刷新 ListView 或者Replace() Fragment 的意图是强制重建它并重新运行onActivityCreated() 中的代码?

这是 Fragment 2 onActivityCreated() 代码的片段:

    @Override
    public void onActivityCreated(Bundle savedInstanceState) 
    {
      super.onActivityCreated(savedInstanceState);

      // Get the prepared data and load it into this view
      ArrayList<ReportData> oReportResultsData = Report.LoadData(Home.ScheduleJSonData,         Home.SelectedDate);

      //Set the list into the gridview (Listview formatted with rows/columns)
      ScheduledActivityReportGridArrayAdapter myGridArrayAdapter = new         ScheduledActivityReportGridArrayAdapter(this.getActivity(), R.layout.homeschedulerow, oReportResultsData);
      lstReport.setAdapter(myGridArrayAdapter);
    }

我确实尝试在 Fragment Manager 上手动调用 notifyDataSetChanged(),希望这会迫使它重新加载/刷新 Fragment 2。我已经重读了文档和许多很好的答案,但自定义 LoadData() 方法和自定义适配器正在onActivityCreated() 中设置我还没有看到地址。

非常感谢!

【问题讨论】:

  • 这个问题解决了吗?我遇到了类似的问题

标签: android eclipse listview refresh fragment


【解决方案1】:

您的片段应该通过 Activity 相互通信,请参阅http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity

您的第一个片段应该调用 Activity 上的一个方法,该方法又会调用第二个片段上的另一个方法,然后重新加载您的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多