软键盘输入键事件句柄

Yog*_*uru 14 android

我想在软键盘上做一些东西输入按键.请参阅下面的代码和输出.它执行两次,但我希望它只执行一次.怎么解决?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    txt = (EditText)findViewById(R.id.txt);
    txt.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                Log.e("test","--------- on enter");
                return false;
            }
            return false;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这是我的输出

Lal*_*ani 20

最好的方法:

if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
    Log.d(TAG, "enter_key_called");
}
Run Code Online (Sandbox Code Playgroud)

  • 应该转而使用ACTION_UP,这样用户可以取消我删除他或她手指的事件吗?并为这些添加KeyEvent.KEYCODE_DPAD_CENTER. (2认同)