ListView未在片段中更新

时间:2017-08-02 18:39:16

标签: android listview android-fragments

我在一项活动中有5个片段。他们正在使用tabs / viewpager进行展示。假设他们的名字是ONE,TWO,THREE,FOUR和FIVE。我将所有片段中的数据显示为ListView。我正在从数据库游标中扩展ListView中的数据。当我在同一个片段中执行添加或删除时,数据会正常更新。当我将数据从一个片段发送/移动到另一个片段时,会出现问题。

问题的例子: 我将数据从片段ONE发送/移动到片段TWO。然后我点击片段TWO来查看数据。它不在那里。当我点击片段FOUR或片段FIVE然后返回片段ONE时显示数据。或者,如果应用程序重新启动或任何其他活动出现在前面并返回。

单击相邻选项卡或交换到相邻选项卡不会显示数据。然后返回到移动数据的选项卡

我相信你们中的某个人必须知道这里发生了什么,并告诉我如何解决这个问题。

  

onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.frag_dramas, container, false);
    setHasOptionsMenu(true);
    list = (ListView) view.findViewById(R.id.mylist);
    return view;
}
  

的onResume

@Override
public void onResume() {
    super.onResume();
    getListView();
}
  

onViewCreated

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            add();
        }
    });
}

片段中还有其他方法,但它们与问题无关。我认为这三种方法是相关的。我在片段中没有onCreate()方法..

1 个答案:

答案 0 :(得分:1)

如果片段已经在内存中,则无论何时添加/删除/更新任何数据,都应使用BroadcastReceiver通知其他片段。

您也可以尝试EventBushttps://github.com/greenrobot/EventBus