在Android虚拟键盘上捕获KeyEvent

时间:2012-09-18 14:24:52

标签: android android-layout android-widget android-keypad

在输入EditText期间,有没有办法在Android虚拟键盘上捕获关键事件?

我想捕获删除键事件?

2 个答案:

答案 0 :(得分:2)

这是一段很好的代码示例:

 @Override
    public boolean dispatchKeyEvent(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.KEYCODE_FORWARD_DEL) { 
/*Just switch out keycode if KEYCODE_FORWARD_DEL if its not the correct one*/
            Toast.makeText(MainActivity.this, "YOU CLICKED Delete KEY",
                    Toast.LENGTH_LONG).show();
            return true;
        }
        Toast.makeText(MainActivity.this, "Didnt work", Toast.LENGTH_SHORT)
                .show();
        return super.dispatchKeyEvent(e);
    };

我加入了祝酒词,这样你就可以测试是否按下了键。 此外,开发者网站here还有很多非常好的信息。

答案 1 :(得分:0)

此代码非常有效。请试一试。

public class MainActivity extends Activity implements View.OnKeyListener {
......
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        Log.e("setOnKeyListener", "Key Code:" + String.valueOf(keyCode));
        if(event.getAction() != KeyEvent.ACTION_DOWN) return true;
        Log.e("setOnKeyListener-ACTION_DOWN", "Key Code:" + String.valueOf(keyCode));
        return false;
    }
}