2 votes

Comment puis-je masquer/désactiver la touche "done" sur le clavier logiciel Android ?

Je travaille avec l'api Amazon S3.

Problème : je travaille avec TextWatcher. Dès que l'utilisateur saisit plus de 3 caractères dans le texte d'édition, l'API est appelée et affiche les résultats correspondants. Le problème commence dès que l'utilisateur appuie sur la touche "done/enter" du clavier logiciel, l'API est appelée à nouveau et la recherche reprend. Puis-je empêcher ce deuxième appel d'une manière ou d'une autre ? Merci !

3voto

Antoine El Murr Points 297

Vous pouvez le modifier à partir de xml :

<EditText
...
android:imeOptions="actionNone"/>

ou du code :

editText.setImeOptions(EditorInfo.IME_ACTION_NONE);

Il enlèvera le bouton "done" chaque fois que l'utilisateur déclenchera le softkeybord.

0voto

Mathieu Gasciolli Points 158

Peut-être pouvez-vous essayer de surcharger la méthode onKeyListener de votre contrôle, pour qu'il détecte si la touche pressée est 'enter' et ajoute le code que vous voulez que votre touche 'enter' fasse ?

edittext.setOnKeyListener(new View.OnKeyListener() {

0voto

Sumit Jain Points 86

Juste la poignée faite cliquez et cachez le clavier souple

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) {
           // hide your keyboard here
           try {
                   InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
                   if (inputMethodManager != null && activity.getCurrentFocus() != null) {
             inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                   }
           } catch (Exception e) {
             e.printStackTrace();
           }
           return true;
        }
        return false;
    }
});

0voto

COYG Points 197

Ajouter

android:maxLines="1"

à votre xml et le bouton d'entrée devrait être désactivé.

0voto

Vignesh Points 139

Vous pouvez faire comme editText.setImeOptions(EditorInfo.IME_ACTION_NONE);

mais il ne cachera pas la touche Entrée/Suivant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X