phone - input method android edittext




Android: comment désactiver IME pour un EditText? (2)

En essayant de le faire fonctionner, j'ai aussi essayé:

inputField.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        }
    });

inputField.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event) {
        getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        return false;
    }
});

Les deux sont appelés, mais ni les masques IME n'apparaissent.

Comment désactiver la fonctionnalité IME d'un EditText ?

Ou: Comment éviter l'affichage du clavier IME?

J'ai une mise en page où mon clavier spécial se trouve en dessous de l' EditText donc il n'est pas nécessaire d'afficher l'IME. S'il vous plaît comprendre que je ne peux pas implémenter mon clavier comme IME car il est spécifique pour ce très EditText et l'utiliser dans un autre contexte ne ferait que causer des problèmes.

J'ai essayé d'utiliser

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

dans le onCreate() de l'activité, mais cela ne semble pas faire quoi que ce soit dans cette situation.


Pensez que j'ai trouvé un moyen de le faire ... sous-classe EditText et remplacer onCheckIsTextEditor() pour retourner false:

public class EditTextEx extends EditText {

    public EditTextEx(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override 
    public boolean onCheckIsTextEditor() {
        return false;
    }       
}

Je l'ai testé et je n'arrive pas à montrer le clavier virtuel.





android-softkeyboard