J'ai un EditText. Je veux qu'après avoir tapé du texte, lorsque l'utilisateur appuie sur la touche Terminé de softkeybard, il doit effectuer une opération de recherche que j'ai également implémentée dans un événement de clic de bouton. Comment faire ça...???
Essaye ça
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE){
//do something
}
return false;
}
});
Essaye ça
Cela fonctionne à la fois pourDONEetRETURN.
EditText editText= (EditText) findViewById(R.id.editText);
editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER
|| actionId == EditorInfo.IME_ACTION_DONE) {
// Do your action
return true;
}
return false;
}
});
Vous attrapez la KeyEvent
puis vérifiez son code d'activation. FLAG_EDITOR_ACTION
est utilisé pour identifier les touches d'entrée provenant d'un IME dont la touche d'entrée a été étiquetée automatiquement "next" ou "done"
if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION)
//your code here
Trouvez les docs ici .
Deuxième méthode
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
int result = actionId & EditorInfo.IME_MASK_ACTION;
switch(result) {
case EditorInfo.IME_ACTION_DONE:
// done stuff
break;
case EditorInfo.IME_ACTION_NEXT:
// next stuff
break;
}
}
});
Cela fonctionnera dans les deux cas, que votre clavier affiche le signe enter ou le signe de la flèche suivante
YourEdittextName.setOnEditorActionListener(new TextView.OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if(actionId== EditorInfo.IME_ACTION_DONE||actionId==EditorInfo.IME_ACTION_NEXT)
{
//Perform Action here
}
return false;
}
});
si vous faites face à la ligne rouge, faites ceci: ____. importer Keyevent et EditorInfo en appuyant sur alt + entrée toutes les erreurs le supprimeront correctement .......