public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN && keyCode==KeyEvent.KEYCODE_VOLUME_UP )
textView.setText("both buttons are pressed");
return true;
}
问题是,当我在if()中使用单一比较时,它可以正常工作。但是当我在单个if()使用&&时使用2比较那它不起作用。实际上我想在同时按下音量增大和音量减小按钮时执行动作。
答案 0 :(得分:0)
onKeyDown()被触发两次。你需要的是使用两个单独的if()s,它们将一个初始化为零的int onKeyDown递增,然后将它递减到onKeyUp,然后每次检查onKeyUp中的int是否等于2,如果为true则执行你需要的动作在你打电话的方法
Sudo代码:
int i = 0;
public void onKeyDown(int keyCode, KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){
i++;
}
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP ){
i++;
}
if(i == 2 ){
action();
}
}
public void onKeyUp(int keyCode, KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){
i--;
}
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP ){
i--;
}
}
private void action(){
// AND ACTION!!!
}