我想回到我之前的片段
所以我尝试使用onBackPressed()
,这是我的代码
@Override
public void onBackPressed()
{
if(getFragmentManager().getBackStackEntryCount() > 0)
getFragmentManager().popBackStack();
else
super.onBackPressed();
}
我在super.onBackPressed()
中有一个错误,它说"无法解决方法'onBackPressed'所以我想知道为什么我已经搜索了如何去我以前的片段,并发现我应该使用addToBackStack()
if (fragment != null) {
android.app.FragmentManager fragmentManager = ((Activity) context).getFragmentManager();
android.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame_container_expandable, fragment);
fragmentTransaction.commit();
} else {
Log.e(TAG, "Error in creating fragment");
}
当我试图把addToBackStack()是不识别它。为什么会这样?是因为我在用android.app.FragmentManager
吗?还是有其他的解决方法?回到之前的片段?谢谢你的帮助
我的日志上写着Error:(88, 18) error: cannot find symbol method onBackPressed()
你可以使用它。
getFragmentManager () .popBackStack ()
将无法工作,如果你没有addToBackStack
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.mainActivity_main_content, fragment).addToBackStack("Fragment");
transaction.commit();
后,你可以捕捉点击片段
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment_end, container, false);
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
getFragmentManager().popBackStack();
return true;
}
return false;
}
});
return view;
}
请参考本文档以获取片段的正确反向导航。
http://developer.android.com/training/implementing-navigation/temporal.html