另一个“popbackstack更新”主题

时间:2014-05-08 09:44:49

标签: android android-fragments android-listview android-ui android-lifecycle

有很多这种线程,但我无法找到并解决我的问题(至少工作一次)。

所以我的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()?

1 个答案:

答案 0 :(得分:1)

在addBackStack上使用add fragment方法,在poBackStack上不会调用前一个片段的onResume。因此,如果您正在使用addBackStack和popBackStack,并且想要调用先前片段的onResume,那么您必须使用replace而不是add。所以你的代码就像 -      的 transaction.replace(R.id.item_detail_container,configDetailSectionFragment);

完成此操作后,您可以使用onResume方法刷新列表。