有很多这种线程,但我无法找到并解决我的问题(至少工作一次)。
所以我的viewpager中有3个片段,我的最后一个(第3个)片段基本上是一个朋友列表,我还有一个按钮,我打开一个新的片段,我处理搜索/请求等。在那个片段我有& #34;后退按钮",我回到我的"第三"使用getFragmentManager()。popBackStack()在viewpager中进行片段化。我如何将布尔值或某些东西传递给" 3rd"片段
我尝试手动调用第3个片段的onPause和onResume方法,但后来我的列表为空。当我回弹时,也没有调用第三个片段的方法。
这是我的代码
第3个片段
这就是我打开新片段的方式
ImageButton friendsButton = (ImageButton) v.findViewById(R.id.friendsButton);
friendsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SearchActivity configDetailSectionFragment = new SearchActivity();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.item_detail_container, configDetailSectionFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
这就是我回到第3个片段的方式
ImageButton backButton=(ImageButton)rootView.findViewById(R.id.backButton);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().popBackStack();
} });
我填写exlistview的方法工作正常,在popbackstack之后没有调用任何方法,所以我可以更新我的列表。
我应该更改什么以及何时何地应该调用listadapter.notifyDataSetChanged()?
答案 0 :(得分:1)
在addBackStack上使用add fragment方法,在poBackStack上不会调用前一个片段的onResume。因此,如果您正在使用addBackStack和popBackStack,并且想要调用先前片段的onResume,那么您必须使用replace而不是add。所以你的代码就像 - 的 transaction.replace(R.id.item_detail_container,configDetailSectionFragment); 强>
完成此操作后,您可以使用onResume方法刷新列表。