2012-02-14 5 views
2

私は、ユーザーが アンドロイドでKeyEventsを取得するには?

  • を入力し始めると、フォーカスが
  • を失われたとき、私はこれを試してみました、それが動作しない場合のEditText

    1. 上のイベントをリッスンする必要があります。どうしたの?あなたはこれを試みることができる最初のもののために

      etTo.setOnKeyListener(new OnKeyListener(){ 
      
          public boolean onKey(View v, int keyCode, KeyEvent event) { 
           if(event.getAction() ==KeyEvent.ACTION_DOWN){ 
            etTo.setText(""); 
           } 
          return false; 
          }   
      }); 
      
    +0

    重複する質問... http://stackoverflow.com/questions/904376/android-key-event-problem – himanshu

    答えて

    1

    :1秒間

    myEditText.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) { 
        //do something 
    } 
    
        public void beforeTextChanged(CharSequence s, int start, int count, int after){ 
        //do something 
    } 
    
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
        //do something 
    } 
    }); 
    

    この試してみてください。フォーカスをチェックするため

    etTo.setOnFocusChangeListener(new OnFocusChangeListener() { 
    
          @Override 
          public void onFocusChange(View v, boolean hasFocus) { 
           // TODO Auto-generated method stub 
    
          } 
         }); 
    

    を使用してみてください

     myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
        @Override 
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
         if (actionId == EditorInfo.IME_ACTION_DONE) { 
    
          yourcalc(); 
    
          return true; 
         } 
         return false; 
        } 
    }); 
    
    1

    をし、

    etTo.addTextChangedListener(new TextWatcher() { 
    
          @Override 
          public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
           // TODO user start to typing text 
    
          } 
    
          @Override 
          public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
            int arg3) { 
           // TODO cursor is into the EditText 
    
          } 
    
          @Override 
          public void afterTextChanged(Editable arg0) { 
           // TODO Auto-generated method stub 
    
          } 
         }); 
    
    関連する問題