我有Fragment Activity
主持Map
和ListActivity
。我想在Activity
上按下后退按钮时设置方法,但它似乎根本不起作用。我的Log
甚至没有打印在Stacktrace
上。
我不知道实际上有什么问题。
以下是方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
Log.e("Test","Back Button Clicked");
this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 0 :(得分:2)
@Override
public void onBackPressed(){
Toast.makeText(getBaseContext(), "back button pressed", Toast.LENGTH_SHORT).show();
Log.e("Test","Back Button Clicked");
this.finish();
}
答案 1 :(得分:2)
如果你想要那种功能,你需要在你的活动中覆盖它,然后在你的所有片段上添加一个YourBackPressed接口,只要按下后退按钮就可以调用相关片段。
复制答案 2 :(得分:0)
也许尝试删除'if'语句,看看会发生什么?
答案 3 :(得分:0)
尝试一下,它可能会根据您的需要运作,
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.e("Test","Back Button Clicked");
Intent backpage = new Intent(CurrentActivity.this,BackPageActivity.cls);
startActivity(backpage);
CurrentActivity.this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 4 :(得分:0)
问题解决了:
How to implement onBackPressed() in Fragments?
要使用片段上的后退按钮,您还需要在子项活动中声明onKeyDown
/ onBackPressed()
方法。