簡體   English   中英

如何才能返回到堆棧中的上一個片段?

[英]How can go to the previous fragment in backstack?

我在onCreate方法中有一個MainActivity,我添加了一個像這樣的片段:

        getSupportFragmentManager().beginTransaction()
                .replace(R.id.content_frame, new FragmentA(), FRAGMENT_TAG).addToBackStack("main")
                .commit();

FragmentA有一個lisview,當用戶單擊某個項目時,我刪除FragmentA並添加FragmentB (在FragmentA有一個FragmentPagerAdapter ,在FragmentPagerAdapterListFragment中的ListFragment我在下面的代碼中調用)

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     getActivity().getSupportFragmentManager().beginTransaction()
                        .replace(R.id.content_frame, new FragmentB(), MainActivity.FRAGMENT_TAG).addToBackStack("main")
                        .commit();
};

現在在FragmentB有一個按鈕,每當用戶單擊它時,我都想回到FragmentA 我嘗試在按鈕偵聽器中調用popBackStack() ,但沒有任何反應

 FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
 fragmentManager.popBackStack();

或者我也嘗試下面的代碼,但這給了我nullpointer異常

   FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        String fragmentTag = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName();
        Fragment currentFragment =getActivity().getSupportFragmentManager()
                .findFragmentByTag(fragmentTag);
        fragmentManager.beginTransaction().replace(R.id.content_frame,currentFragment).commit();
        fragmentManager.popBackStack();

如果要轉到BackStack的上一個Fragment ,則只需執行onBackPressed()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM