簡體   English   中英

軟鍵盤打開android時如何捕獲按鍵事件?

[英]How to catch key events while soft keyboard is open android?

我知道如何通過覆蓋來捕捉活動中的關鍵事件

public boolean onKeyDown(int keyCode, KeyEvent event)

問題是,當軟鍵盤打開時,甚至沒有調用此方法。

是的,當我們談論軟鍵盤時,這意味着使用起來並不那么容易。 順便說一下,與軟鍵盤有關的方法不會獲得預期的結果。 例如:

@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。 您可以捕獲文本更改的任何階段。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM