简体   繁体   English

在片段中处理 android 中的 onBackPressed

[英]Handle onBackPressed in android in fragment

I want to handle onBackPressed in fragment我想在片段中处理onBackPressed

I use following code in my activity but this return 0我在我的活动中使用以下代码,但这返回 0

@Override
    public void onBackPressed() {

    int count = getFragmentManager().getBackStackEntryCount();

    Toast.makeText(getBaseContext(), ""+count, Toast.LENGTH_SHORT).show();
    if (count == 1) {
        super.onBackPressed();
        //additional code
    } else {
        getFragmentManager().popBackStack();
    }

}

Just add .addToBackStack(null) in your Activity or Fragment .只需在您的ActivityFragment添加.addToBackStack(null) When you adding or replacing fragment .添加或替换fragment Like below像下面

 getSupportFragmentManager().beginTransaction().replace(R.id.parent_layout, new MyFragment()).addToBackStack(null).commit();

Note:- you don't have to do anything in your onBackPressed() method.注意:- 您不必在onBackPressed()方法中执行任何操作。

Just app this line when you want to replace any fragment and manage backsack on Fragment.

ClientHome per = new ClientHome();
                Bundle bundle = new Bundle();
                bundle.putString("usertype", "client");
                per.setArguments(bundle);
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.setCustomAnimations(R.anim.slide_from_left, R.anim.slide_to_right);
                fragmentTransaction.replace(R.id.content_frame, per, "tag");
                fragmentTransaction.addToBackStack("tag");
                fragmentTransaction.commit();

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM