【问题标题】:soft input keyboard keydown capture not working软输入键盘按键捕获不起作用
【发布时间】:2016-09-11 20:29:09
【问题描述】:

我正在构建一个应用程序,我需要确定用户在软输入键盘上按下了哪个键。我有以下功能,只有在按下回车键时才会触发日志 - 64 和 67。按下键盘上的任何其他键时不会发生任何事情。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    String f=Integer.toString(keyCode);
    Log.d(TAG, f);
    return true;

}

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用 TextWatcher 获取当前键入的文本。

     edittext.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                // TODO Auto-generated method stub
            }
    
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                // TODO Auto-generated method stub
            }
    
            @Override
            public void afterTextChanged(Editable s) {
    
                // TODO Auto-generated method stub
            }
        });
    

    【讨论】:

      【解决方案2】:

      需要添加setOnKeyListener()方法:

      edittext.setOnKeyListener(new View.OnKeyListener() {
              @Override
              public boolean onKey(View v, int keyCode, KeyEvent event) {
      
                  if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
                      Toast.makeText(getApplicationContext(), "Clicked ENTER or END button", Toast.LENGTH_SHORT).show();
                  }
                  return false;
              }
          });
      

      当然,这是 Enter 键的示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-30
        • 2015-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-18
        • 1970-01-01
        • 2014-09-27
        相关资源
        最近更新 更多