2012-01-02 4 views
12

Tengo un EditText. Cuando hago clic en él, se vuelve enfocable. Escribiré el texto de entrada que se ingresará en EditText. Quiero implementar un oyente para EditText, de modo que cuando deje de escribir, guarde automáticamente ese texto en la base de datos en lugar de tener un botón. ¿Cómo tener un oyente para que EditText escuche que la escritura está detenida o no?Implementando Text Watcher para EditText

Respuesta

14

conjunto EditarTexto imeOption

editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 

Mediante el uso de algo como esto,

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      // Specify your database function here. 
      return true; 
     } 
     return false; 
    } 
}); 

Como alternativa, puede utilizar la interfaz OnEditorActionListener para evitar la clase interna anónima.

+0

También puede cerrar el teclado virtual después de hacer clic en Hecho al devolver falso en lugar de devolver verdadero. – Youness

38

Pruebe así.

EditText et = (EditText)findViewById(R.id.editText); 
Log.e("TextWatcherTest", "Set text xyz"); 
et.setText("xyz"); 

et.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { } 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { } 
    @Override 
    public void afterTextChanged(Editable s) { 
     Log.e("TextWatcherTest", "afterTextChanged:\t" +s.toString()); 
    } 
}); 
+0

Esta debe ser la respuesta correcta. –

4

Agregar a su EDITTEXT

et1.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

      // TODO Auto-generated method stub 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      // TODO Auto-generated method stub 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      // TODO Auto-generated method stub 
     } 
    });