É possível detectar quando a Donetecla do teclado na tela foi pressionada?
É possível detectar quando a Donetecla do teclado na tela foi pressionada?
Respostas:
Sim, é possível:
editText = (EditText) findViewById(R.id.edit_text);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// do your stuff here
}
return false;
}
});
Observe que você terá que importar as seguintes bibliotecas:
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Um Editor Info é a classe mais útil quando você tem que lidar com qualquer tipo de entrada do usuário em seu aplicativo Android. Por exemplo, em operações de login / registro / pesquisa, podemos usá-lo para uma entrada de teclado mais precisa. Uma classe de informação do editor descreve vários atributos para o objeto de edição de texto que um método de entrada estará se comunicando diretamente com o conteúdo de texto de edição.
Você pode tentar com IME_ACTION_DONE .
Esta ação executa uma Doneoperação sem entrada de dados e o IMEserá fechado.
Usando setOnEditorActionListener
EditTextObj.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_DONE) {
/* Write your logic here that will be executed when user taps next button */
handled = true;
}
return handled;
}
});
Usando Butterknife você pode fazer isso
@OnEditorAction(R.id.signInPasswordText)
boolean onEditorAction(TextView v, int actionId, KeyEvent event){
if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
/* Write your logic here that will be executed when user taps next button */
}
return false;
}
EditorInfo.IME_ACTION_SEARCHo botão de pesquisa da lente.