1
我正在嘗試捕捉shift或alt鍵的按鍵,並且它似乎可以在物理鍵盤上正常工作。不幸的是,當我使用屏幕鍵盤測試相同的代碼時,它根本沒有響應(我試過一個2.1,4.03仿真器和2.3物理設備)。捕獲Soft/OnScreen鍵盤的特殊按鍵(shift,alt)
這似乎是一個平臺問題,可能沒有解決方法,但作爲最後一個努力,我想在這裏發佈問題,看看有沒有人找到了我想要的任何想法。
謝謝!
編輯澄清我的觀點:我試圖把一個斷點在「如果(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;
}
});
}
我試着在「if(event.getAction()== KeyEvent.ACTION_DOWN)」這一行上放置一個斷點,並且如果我按下物理鍵盤的移位,它會一直停止,但從來沒有按下Shift onScreenKeyboard。所以,問題在於onScreenKeyboard的所有按鍵都沒有執行onKey。 – 2012-03-21 07:54:07