[英]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
,在FragmentPagerAdapter
是ListFragment
中的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.