我正在尝试捕捉shift键或alt键的按键,它似乎与物理键盘配合得很好。不幸的是,当我使用onScreen键盘测试相同的代码时,它根本没有响应(我已经尝试过2.1,4.03仿真器和2.3物理设备)。
这似乎是一个平台问题,可能没有解决方法,但作为最后的努力,我想在这里发布问题,看看是否有人找到了一个(我愿意接受任何想法)。
谢谢!
编辑以澄清我的观点:我尝试在“if(event.getAction()== KeyEvent.ACTION_DOWN)”行上设置一个断点,如果我按下班次它会一直停止物理键盘,但从我按下onScreenKeyboard的转移时从来没有。所以,问题是没有为onScreenKeyboard的所有按键执行onKey。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mEditText1 = (EditText) findViewById(R.id.editText1);
mEditText1.setOnKeyListener( new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
Toast.makeText(IMETestActivity.this, "Enter was consumed",
Toast.LENGTH_SHORT).show();
return true;
case KeyEvent.META_SHIFT_LEFT_ON:
case KeyEvent.META_SHIFT_RIGHT_ON:
Toast.makeText(IMETestActivity.this, "Meta Shift was consumed",
Toast.LENGTH_SHORT).show();
return true;
case KeyEvent.KEYCODE_SHIFT_LEFT:
case KeyEvent.KEYCODE_SHIFT_RIGHT:
Toast.makeText(IMETestActivity.this, "Shift was consumed",
Toast.LENGTH_SHORT).show();
return true;
default:
break;
}
}
return false;
}
});
}
答案 0 :(得分:0)
每按一次键,尝试记录键代码以确保事件正在注册。如果是,只需将该代码添加到switch语句中。
例如,在onKeyListener的开头就像System.out.println(keyCode)。您可以使用LogCat查看输出。