[英]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.