我显示了一个编辑文本和一个保存按钮。当按下后退键时,我希望它们消失(如果它们可见)并且下一次后退将执行后退按钮的默认操作。代码如下:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
&& !event.isCanceled()) {
if(save.isShown())
{
save.setVisibility(Button.GONE);
text.setVisibility(EditText.GONE);
}
//else ???????????????
return true;
}
return super.onKeyUp(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码有以下结果: 1. 当 edittext 和 button 可见时,后退按钮使它们消失但接下来的按下什么都不呈现。虽然如果一直按下后退按钮,我们会回到上一个活动。2.当edittext和button最初不存在时,按下后退按钮会意外停止应用程序。虽然如果保持按下后退按钮,我们会回到上一个活动。
代替 else,我尝试了 finish() 但程序意外停止。返回 false 也结果相同..
@Override
public void onBackPressed() {
doStuff();
}
Run Code Online (Sandbox Code Playgroud)
编辑
等等,长按怎么样?如果我正确地阅读了原始问题,您希望最初的后退键隐藏一些视图,而第二个则表现正常?为什么不只是这样:
private boolean flag = false;
@Override
public void onBackPressed() {
if(flag) {
super.onBackPressed();
} else {
view.setVisibility(View.GONE);
flag = true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9364 次 |
| 最近记录: |