2017-08-02 65 views
0

我在活动中有5个片段。他们正在使用tabs/viewpager显示。假设他们被称为“一,二,三,四,五”。我将所有片段中的数据显示为ListView。我正在从数据库游标充气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()方法..

+0

我假设您使用ViewPager刷卡视图,对不对? – lalosoft

+0

是的,你是对的 – Dilazak

+0

很酷,我记得我有一个类似的问题,它与'FragmentStatePagerAdapter'的用法有关。检查您是否使用该适配器来处理ViewPager。如果没有,请尝试使用它。 – lalosoft

回答

1

如果片段已经在内存中,则应该使用BroadcastReceiver来在任何数据添加/删除/更新时通知其他片段。您也可以尝试EventBushttps://github.com/greenrobot/EventBus