Android 当我们使用addToBackStack()从一个片段切换到另一个片段时,如何打开上一个片段
我有两个片段——A和B 当我用片段B替换片段A时,如何从片段B返回片段A而不再次添加或替换片段A?请尝试以下代码:-Android 当我们使用addToBackStack()从一个片段切换到另一个片段时,如何打开上一个片段,android,android-fragments,Android,Android Fragments,我有两个片段——A和B 当我用片段B替换片段A时,如何从片段B返回片段A而不再次添加或替换片段A?请尝试以下代码:- @Override public void onBackPressed(){ FragmentManager fm = getFragmentManager(); if (fm.getBackStackEntryCount() > 0) { Log.i("MainActivity", "popping backstack");
@Override
public void onBackPressed(){
FragmentManager fm = getFragmentManager();
if (fm.getBackStackEntryCount() > 0) {
Log.i("MainActivity", "popping backstack");
fm.popBackStack();
} else {
Log.i("MainActivity", "nothing on backstack, calling super");
super.onBackPressed();
}
}
我总是使用Popbackback 使用类扩展片段内部的支持库(Api 11类扩展片段内部:
getActivity().getFragmentManager().popBackStackImmediate();//returns a boolean
对于类扩展活动,您不需要getActivity()上下文:
只需按后退按钮:)是否要以编程方式加载它…?是否要按按钮?而不是后退按钮?当我替换片段时,如何将替换的片段添加到addToBackStack()中,以便使用PopBacksack()@ManjuKumari无法做到这一点,当我替换片段时,您需要手动调用addbacksack agian到您的片段A如何将替换的片段添加到addToBackStack()中,以便我可以使用PopBacksack();快速提问,这是否比仅仅调用getActivity().onBackPressed()好@Zhuinden onbackpressed是一个关于活动的界面。它需要在片段所在的活动上实现。这些方法产生了类似的结果,见@Golu-answer。我只是觉得我的答案灵活而通用,因为它可以用于onBackPressed或任何点击事件(任何地方都有有效的上下文)。啊,这是有道理的,活动可以重新定义onBackPressed(),然后事情就不同了。
getActivity().getFragmentManager().popBackStackImmediate();//returns a boolean
getFragmentManager().popBackStackImmediate();//similar for support library