2009-11-04 12 views
11

Mit der physischen Tastatur können Sie Tastendrücke fangen mit einem KeyListener, so etwas wie:Fang-Taste mit der virtuellen Tastatur in Android gedrückt?

myEditText.setOnKeyListener(new OnKeyListener() { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_ENTER) { 
      /* do something */ 
     } 
    } 
}); 

Wer weiß, wie dies zu tun (oder ähnlich) mit der virtuellen Tastatur?

+3

Dont Sie denken, es wäre eine bessere Idee, den besseren Weg, Sie gefunden zu teilen, ich meine, ich komme hier um Hilfe zu bitten, erarbeiten die Sie sich selbst beantworten und dann nicht das Antwort geben, mehr geben und weniger nehme ich an;) – Spider

Antwort

24

Bisher habe ich keinen Listener für die virtuelle Tastatur in Android gefunden. Ich habe eine alternative Lösung gefunden, d. H. Ich habe das TextChanged-Ereignis verwendet, um den Wert der im Text bearbeiten eingegebenen Schlüssel abzurufen.

import android.app.Activity; 
    import android.os.Bundle; 
    import android.text.Editable; 
    import android.text.TextWatcher; 
    import android.util.Log; 
    import android.view.KeyEvent; 
    import android.view.View; 
    import android.view.View.OnKeyListener; 
    import android.widget.EditText; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    public class ShowKeypad extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      EditText emailTxt = (EditText) findViewById(R.id.editText); 

      emailTxt.addTextChangedListener(new TextWatcher() 
      { 
        public void afterTextChanged (Editable s){ 
          Log.d("seachScreen", "afterTextChanged"); 
        } 
        public void beforeTextChanged (CharSequence s, int start, int 
          count, int after) 
        { 
          Log.d("seachScreen", "beforeTextChanged"); 
        } 
        public void onTextChanged (CharSequence s, int start, int before, 
          int count) 
        { 
          Log.d("seachScreen", s.toString()); 
        } 

      final TextView tv = (TextView)findViewById(R.id.tv); 
    }); 
    } 

} 
+2

Wenn in editText kein Text eingetragen ist? Wie denkst du Griff löschen Taste? – atasoyh