我正在覆盖活动中的onBackPressed方法:
@Override
public void onBackPressed() {
super.onBackPressed();
}
我正在按如下方式添加片段:
fragmentManager.beginTransaction()
.add(R.id.frame_container, myFragment).addToBackStack("").commit();
问题是我的onBackPressed未在活动中被调用。 但是当我把它改为:
replace(R.id.frame_container, myFragment).addToBackStack("").commit();
按预期调用它。 我必须添加片段。如何解决这个问题?
答案 0 :(得分:3)
@Override
public boolean onKeyUp(int keyCode, KeyEvent objEvent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, objEvent);
}
@Override
public void onBackPressed() {
goBack();
}
public void goBack() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
MyCaseActivity.this);
alertDialog.setTitle("");
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
System.exit(0);
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
这适合我。