我希望在一段时间内引入两个连续的密钥(第一个,然后是另一个)并存储每个密钥的值。 时间段为3秒或更长,密钥仅为数字。
在此代码中,我只获得了1到9的数字。
@Override
public boolean onKeyDown (int keyCode, KeyEvent event){
event.getScanCode();
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
break;
case KeyEvent.KEYCODE_DPAD_UP:
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
break;
case KeyEvent.KEYCODE_ENTER:
super.onKeyDown(KeyEvent.KEYCODE_ENTER, event);
break;
default:
//This is the part
if (keyCode>7 && keyCode<17){
indice_layouts[(keyCode - 8)].requestFocus();
}else{
Toast.makeText(this,"empty number", Toast.LENGTH_LONG).show();
}
break;
}
return true;
}
我希望先放1,然后放3,最后得到13。
提前致谢!
答案 0 :(得分:0)
您可以使用类变量进行检查。下面的伪代码。它有点hacky,但它应该工作。
long timeButton1 = 0;
int keyCode1 = 0;
public boolean onKey(...) {
...
if(keyCode == KEYCODE_1) {
timeButton1 = new Date().getTime();
keycode1 = KEYCODE_1;
}
if(keyCode == KEYCODE_3 && new Date().getTime() - timeButton1 > 3000 && keycode1 == KEYCODE_1) {
//Reset
timeButton1 = 0;
keycode1 = 0;
//Do awesome stuff
...
}
}