【问题标题】:ListView is not updating in a fragmentListView 未在片段中更新
【发布时间】:2017-08-04 13:53:29
【问题描述】:

我在一个活动中有 5 个片段。并且它们正在使用选项卡/viewpager 显示。假设它们被命名为一、二、三、四和五。我将所有片段中的数据显示为 ListView。我正在从数据库游标中膨胀 ListView 中的数据。当我在同一个片段中执行添加或删除时,数据会正常更新。当我将数据从一个片段发送/移动到另一个片段时,就会出现问题。

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

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

我相信你们当中一定有人知道这里发生了什么,并告诉我如何解决这个问题。

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() 方法..

【问题讨论】:

  • 我假设您正在使用 ViewPager 滑动视图,对吧?
  • 是的,你是对的
  • 酷,我记得我有一个类似的问题,它与 FragmentStatePagerAdapter 的使用有关。检查您是否使用该适配器来处理 ViewPager。如果没有,请尝试使用它。

标签: android listview android-fragments


【解决方案1】:

如果 Fragment 已经在内存中,您应该使用 BroadcastReceiver 在添加/删除/更新任何数据时通知其他 Fragment。

你也可以试试EventBus。 https://github.com/greenrobot/EventBus

【讨论】:

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