如何在Android中的Softkeyboad上捕获击键

时间:2014-03-15 15:11:40

标签: android android-edittext android-softkeyboard

我正在尝试接受编辑文本中的字母(在输入每个字母后,Toast应该显示'您按了一个键等等,并且字母也必须显示在编辑文本视图中)

这是我捕获KeyStrokes所做的,但它似乎没有工作,因为没有创建toast或Log条目。

EditText txt=(EditText) findViewById(R.id.editText1);
txt.setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_A && event.getAction() == KeyEvent.ACTION_DOWN) {
                   Toast.makeText(MainActivity.this, "YOU PRESSED A", Toast.LENGTH_SHORT).show();
                   Log.d("HEY", "You pressed A");
                    return false;
                }
                return false;
            }
        });

这是用onCreate Method编写的。

这只是一个测试代码,如果这样可行,我将修改它用作个人电脑的远程键盘。(通过蓝牙)

1 个答案:

答案 0 :(得分:0)

最好的方法是使用TextWatcher类

EditText txt = (EditText) findViewById(R.id.editText1);

TextWatcher myTextWatcher = new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        Toast.makeText(MainActivity.this, "YOU PRESSED A", Toast.LENGTH_SHORT).show();
        Log.d("HEY", "You pressed A");
    }
};
txt.addTextChangedListener(myTextWatcher);