在 Android 中使用多个 KeyEvent
Posted
技术标签:
【中文标题】在 Android 中使用多个 KeyEvent【英文标题】:Use more than one KeyEvent in Android 【发布时间】:2016-07-20 14:10:21 【问题描述】:我希望在一段时间内引入两个连续的键(第一个,然后是另一个)并存储每个键码的值。 时间段为 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。
提前致谢!
【问题讨论】:
【参考方案1】:您可以使用类变量进行检查。伪代码如下。这有点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
...
【讨论】:
以上是关于在 Android 中使用多个 KeyEvent的主要内容,如果未能解决你的问题,请参考以下文章
如果我们必须在android中使用viewpager创建多个页面,那么我们是不是必须创建多个片段?还有其他选择吗?