简体   繁体   English

在Android中按后退按钮应用程序混合

[英]pressing back button application mixes in android

facing issue with pressing back button in my Fragement .pressing back my application got mixed with other fragments. 在我的Fragement中按后退按钮面临问题。按回我的应用程序与其他片段混合在一起。

can any one help me 谁能帮我

I have 4 Fragements 我有4个碎片

DealerDetails.java DealerDetails.java

 rootView.setFocusableInTouchMode(true);
    rootView.requestFocus();
    rootView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // Log.i(tag, "keyCode: " + keyCode);
            if (keyCode == KeyEvent.KEYCODE_BACK) {

                // Log.i(tag, "onKey Back listener is working!!!");
                // getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

                Fragment fragment = new DealerByNamesFragement();
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.frame_container, fragment).commit();

                return true;
            } else {
                return false;
            }
        }
    });

By pressing back button i want to show DealerByNamesFragement.java 通过按返回按钮,我想显示DealerByNamesFragement.java

DealerByNamesFragement.java DealerByNamesFragement.java

    rootView.setFocusableInTouchMode(true);
            rootView.requestFocus();
            rootView.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    // Log.i(tag, "keyCode: " + keyCode);

                        if(keyCode == KeyEvent.KEYCODE_BACK && keyCode == KeyEvent.ACTION_DOWN ) {

                            // Log.i(tag, "onKey Back listener is working!!!");
                            // getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

                            Fragment fragment = new DealerSearchFragment();
                            FragmentManager fragmentManager = getFragmentManager();
                            fragmentManager.beginTransaction()
                                    .replace(R.id.frame_container, fragment).addToBackStack("tag1").commit();

                        return true;
                    } else {
                        return false;
                    }
                }
            });

By pressing back redirecting to DealerSearchFragment.java

DealerSearchFragment.java DealerSearchFragment.java

 rootView.setFocusableInTouchMode(true);
            rootView.requestFocus();
            rootView.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    // Log.i(tag, "keyCode: " + keyCode);
                    if (keyCode == KeyEvent.KEYCODE_BACK) {

                        // Log.i(tag, "onKey Back listener is working!!!");
                        // getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

                        Fragment fragment = new HomeFragment();
                        FragmentManager fragmentManager = getFragmentManager();
                        fragmentManager.beginTransaction()
                                .replace(R.id.frame_container, fragment).commit();

                        return true;
                    } else {
                        return false;
                    }
                }
            });

Do you have onBackPressed() in your activity? 您的活动中是否有onBackPressed()

Don't forget to set addToBackStack to null when calling new fragment from activity. 从活动中调用新片段时,请不要忘记将addToBackStack设置为null

mFragmentTransaction.addToBackStack(null);

and add onBackPressed() method to the activity in order to finish the back button process 并将onBackPressed()方法添加到活动中以完成后退按钮过程

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() == 0) {
        this.finish();
    } else {
        getFragmentManager().popBackStack();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android应用程序按“退回按钮”退出后崩溃 - Android application Crashing after quit it by pressing “back button” 在Android中按下后退按钮销毁数据 - Destroy data on pressing back button in android 按下返回按钮3秒钟 - 3 seconds for pressing the back button 在Android设备上按返回按钮后,烤面包还没有完成? - Toast not getting finished after pressing back button on android device? 两次按返回按钮可退出应用,弄乱Android中的视图 - Pressing back button twice to exit app messing up views in Android 按 Android 中的后退按钮删除每个字母。(代码有效) - Remove Each letter by pressing back button in Android. (code works) Android按“后退”或“主页”按钮会导致连接性改变吗? - Android Pressing Back or home button causes Connectivity change? AsyncTask nullPointerException按下后退按钮 - AsyncTask nullPointerException pressing back button 如何在TAB应用程序中按下chlild活动上的按钮时返回到父活动 - how to return back to parent activity while pressing back button on chlild activity in TAB Application 无法显示作弊吐司,按返回按钮时应用程序无法返回上一屏幕 - Unable to get Cheat Toast to show and when pressing the back button the application is not going back to the previous screen
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM