2011-07-30 5 views
0

は、私はとにかくイベントをキャッチするためにソフトキーボードが開いているときに、この方法でも呼ばれていないされてソフトキーボードが開いている間にキーイベントをキャッチする方法アンドロイド?

public boolean onKeyDown(int keyCode, KeyEvent event) 

問題... 任意の方法をオーバーライドすることによって、私の活動の重要なイベントをキャッチする方法を知っていますか?

答えて

0

はい、私たちがソフトキーボードについて話すとき、そう簡単に使えないということです。ところで、ソフトキーボードに関連する方法では、期待した結果が得られません。例:

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

解決方法は、TextWatcherを使用しています。 beforeTextChanged、onTextChangedとafterTextChanged:アプリケーションこれらのメソッドが順次呼ばれ

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 
     } 
}); 

ためにこのコードを使用します。あなたは変化するテキストのあらゆる段階を捕らえることができます。 幸運を祈る!