我有一个包含多个视图的片段。我想要抓住它上面的后退按钮,所以如果选中了特定的视图,只需省略按下按钮,如果没有选择该特定视图,就像任何后退按钮一样按下它的工作。我用下面的代码来捕捉后退按钮:
View v = inflater.inflate(R.layout.home_page, paramViewGroup, false);
v.setFocusableInTouchMode(true);
v.requestFocus();
v.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (fab.isSelected()) {
hideMenu();
fab.setSelected(!fab.isSelected());
}
// else
// How back button do its habitual job?
//
return true;
} else {
return false;
}
}
});
如何更改后退按钮执行惯常工作的代码?
使用当前代码,后退按钮永远不会终止主页中的应用程序。
答案 0 :(得分:0)
您应该覆盖活动范围中的onBackPressed()
方法,并使用onOptionsItemSelected
方法调用它。
@Override
public void onBackPressed()
{
super.onBackPressed();
// Do your things.
}
public void method()
{
onBackPressed();
}
如果您想在onBackPressed
方法中添加一些复杂的逻辑,只需创建另一个带参数的逻辑。
public void myOnBackPressed(int param1, String param2)
{
// Do your complex logic.
onBackPressed();
}
public void method()
{
myOnBackPressed(myInt, myString);
}
答案 1 :(得分:0)
在您的代码中,您设置了return true
。这意味着你处理后退按钮,你不想发出后退按钮。
您可以在onBackPressed()
方法中调用onKey()
以在外部发出后退按钮。或者您可以在片段onBackPressed()
中处理后退按钮。