我没有找到任何解决我的问题的办法。
我得到了几个片段(动态创建的),但是我的Back Button根本不工作,按它会关闭应用程序,不管哪个片段是“活动的”。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.itemAdd:
FragmentTransaction tx = getFragmentManager().beginTransaction();
Fragment fragment = new NeuesProduktFrag();
tx.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right,
R.anim.slide_in_left, R.anim.slide_out_right);
tx.replace(R.id.main, fragment);
tx.addToBackStack(null);
tx.commit();
return true;一切正常,但在输入"NeuesProduktFrag“片段并按回按钮之后,我的应用程序就关闭了。尝试在不同的按钮等。重写onBackPressed是不需要的,对吗?addToBackStack应该做这件事吗?
发布于 2013-11-07 14:19:51
在我挣扎了很长一段时间之后,这是我最后的准则:
@Override
public void onBackPressed() {
// initialize variables
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
// check to see if stack is empty
if (fm.getBackStackEntryCount() > 0) {
fm.popBackStack();
ft.commit();
}
else {
if (this.lastBackPressTime < System.currentTimeMillis() - 4000) {
Toast.makeText(this, "Nochmal drücken zum Beenden!", 4000).show();
this.lastBackPressTime = System.currentTimeMillis();
} else{
super.onBackPressed();
}
}
}我在我的FragmentActivity中使用了它,最后添加了一个双重选项卡来关闭应用程序。
发布于 2014-10-27 05:06:22
我猜当在支持库的getFragmentManager()中使用getSupportFragmentManager()而不是支持库的getSupportFragmentManager()时会出现问题。例如,当您希望PreferenceFragment和setSupportActionBar()在一起时。
我通过从ActionBarActivity复制粘贴onBackPressed()实现来解决onBackPressed()中的问题,并做了一些更改:
@Override
public void onBackPressed() {
if (getFragmentManager().popBackStackImmediate()) return;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
finish();
else
finishAfterTransition();
}发布于 2014-05-20 15:35:48
我的代码可以从FragmentActivity转换为活动。
编辑:键入错误
https://stackoverflow.com/questions/18963874
复制相似问题