【问题标题】:How to catch key events while soft keyboard is open android?如何在软键盘打开android时捕获关键事件?
【发布时间】:2011-07-30 13:16:34
【问题描述】:

我知道如何通过覆盖来捕获我的活动中的关键事件

public boolean onKeyDown(int keyCode, KeyEvent event)

问题是当软键盘打开时这个方法甚至没有被调用...... 有什么方法可以捕捉到这个事件吗?

【问题讨论】:

    标签: java android events keyboard key


    【解决方案1】:

    是的,当我们谈到软键盘时,这意味着它没有那么容易使用。顺便说一下,与软键盘相关的方法没有预期的结果。例如:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
        //do something
        return super.onKeyDown(keyCode, event);
    }
    

    我发现的解决方法是使用 TextWatcher。将此代码用于您的应用程序

    YourEdit = (EditText) findViewById(R.id.YourEdit);         
    YourEdit.addTextChangedListener(new TextWatcher()
    {
            public void  afterTextChanged (Editable s)
            { 
                //checking of TextWatcher functionality
                Toast.makeText(mContext, "afterTextChanged", 3).show();    
                //do something
            } 
    
            public void  beforeTextChanged  (CharSequence s, int start, int count, int after)
            { 
                //checking of TextWatcher functionality
                Toast.makeText(mContext, "beforeTextChanged", 3).show();    
                //do something
            } 
    
            public void  onTextChanged  (CharSequence s, int start, int before, int count) 
            { 
                //checking of TextWatcher functionality
                Toast.makeText(mContext, "onTextChanged", 3).show();    
                //do something
            }
    });
    

    依次调用这些方法:beforeTextChanged、onTextChanged 和 afterTextChanged。您可以捕捉到文本变化的任何阶段。 祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多