android - Fragment addToBackStack 关闭 App

标签 android fragment back-stack

我没有找到解决问题的方法。

我有几个 fragment (动态创建),但我的后退按钮根本不起作用, 按下它将关闭应用程序,无论 fragment 是“Activity 的”。

@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” fragment 并按下后退按钮后,我的应用程序关闭。在不同的按钮等中尝试过。 不需要覆盖 onBackPressed 吗? addToBackStack 是否应该解决问题?

最佳答案

经过我很长一段时间的奋斗,这是我最终的代码:

@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 中使用了它,并添加了一个双选项卡以最终关闭应用程序。

关于android - Fragment addToBackStack 关闭 App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963874/

相关文章:

android - Android 中 FragmentTransaction 的类型不匹配与 getFragmentManager().beginTransaction()

Android - 主题不适用于 fragment

android - 从 Fragment 中的适配器(recyclerview)获取所有项目

android - 在 viewpager 中使用 backstack 和 back 按钮

android - 如何在 Android 中将 Fragments 添加到后台堆栈

android - 当我们使用 FLAG_ACTIVITY_NEW_TASK 清除 Activity 堆栈时,OnDestroy 不会触发

android - 数据不显示在 gridView Android 中

android - 如何从 Android WifiConfiguration 条目获取 WiFi 安全性(NONE、WEP、WPA、WPA2)?

android - 专有文件格式或加密以限制对文件的访问 (Android)

Android第一次动画不流畅