我想在单击 BACK 键一次时显示一些内容,并在单击两次时关闭应用程序。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (/* BACK_KEY_was_clicked_once_again */) {
finish();
}
else
{
text.setText(log);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
抱歉我没有解释好
我的应用程序的主要(假设) View 是:text.setText(log),但是当我单击菜单中的“信息”按钮时:text.setText(info)。设置“信息”时,我希望后退按钮为:text.setText(log),设置“日志”时,我希望后退按钮关闭我的应用程序。
现在我意识到我真正想做什么,并将代码更改为:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (text.getText() == log) {
finish();
}
else
{
text.setText(log);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
最佳答案
使用类级别字段作为标志来检查后退按钮是否按下两次:
public static boolean backtwice=false; //this is flag
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (backtwice) {
backtwice=false; //reset here
finish();
}
else
{
text.setText(log);
backtwice=true; //set true if first time back pressed
}
return true;
}
return super.onKeyDown(keyCode, event);
}
关于Android BACK 键点击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749512/