android fragments - popbackstack的另一个“更新”的话题



有几十个这样的线程,但我找不到解决我的问题(至少工作一个)。

所以我有3个片段在我的viewpager,我的最后(第3)片段基本上是一个朋友列表,我也有一个按钮,我打开一个新的片段,在那里我处理搜索/请求等。在那个片段中,我有"后退按钮",我回到我的"第3"片段在viewpager与getFragmentManager(). popbackstack()。我怎么能传递布尔值或东西回到"第三"片段?

我尝试手动调用第三片段的onPause和onResume方法,但我的列表是空的。当我popbackstack时,也不会调用第三个片段的方法。

这是我的代码

第三个片段

打开新的片段

    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();
        }
    });

这就是我回到第三段的方法

    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()?

使用addBackStack方法添加片段,在poBackStack上先前片段的onResume将不会被调用。所以如果你在使用addBackStack和popBackStack,你想调用你之前的片段的onResume,那么你必须使用replace而不是add,所以你的代码只是像-一样改变 transaction.replace (R.id.item_detail_container configDetailSectionFragment);

一旦你这样做了,你可以使用你的onResume方法来刷新列表

最新更新