2011-01-07 7 views
6

Ich habe EditText Ansicht in android .. ich will, wenn der einen Brief gibt die Anwendung den Brief bekommen ..wie bekomme ich brief sofort in android eingegeben?

, die die Notwendigkeit bedeutet einen Hörer oder Event-Handler zu haben, jeden Buchstaben bekommen eingegeben

Hoffnung meine Frage ist klar

Antwort

13
EditText et = (EditText) findViewById(R.id.EditText01); 

     et.addTextChangedListener(new TextWatcher() 
     { 
      @Override 
      public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 

       try 
       { 
        char currentChar = arg0.charAt(arg1); // currently typed character 
       } 
       catch(Exception e) 
       { 
        // error 
       } 
      } 

      @Override 
      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
        int arg3) { 

      } 

      @Override 
      public void afterTextChanged(Editable arg0) { 

      } 
     }); 
+1

Während try/catch auch funktioniert, ein if-Anweisung mit '(s.length()> start) 'verhindert, dass die Anweisung bei der Verwendung der Rücktaste abstürzt –

3

können Sie die Methode TextView.addTextChangedListener(TextWatcher watcher)

TextWatcher bietet 3 schöne Methoden verwenden:

public abstract void afterTextChanged (Editable s) 

public abstract void beforeTextChanged (CharSequence s, int start, int count, int after) 

public abstract void onTextChanged (CharSequence s, int start, int before, int count) 

Here the doc

0

Schauen Sie sich die "setOnKeyListener" -Methode in EditText an.

+1

IMHO nicht wirklich nützlich, mit der virtuellen Tastatur –

0

Die Antwort von Vikas arbeitete fast für mich, aber nicht ganz. Hier ist, was ich tat, die tatsächlichen Zeichen eingegeben zu bekommen, wie es geschrieben wird:

EditText et = ...; 
et.addTextChangedListener(new TextWatcher() { 
    @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } 

    @Override public void afterTextChanged(Editable editable) { } 

    @Override public void onTextChanged(CharSequence s, int start, int count, int after) { 
     if (s.length() > start + count) { 
      char c = s.charAt(start + count); 
      // do something ... 
     } 
    } 
}); 
Verwandte Themen