Frage

Wie schalte ich die IME-Funktionalität eines EditText aus?

Oder: Wie vermeide ich die Anzeige der IME-Tastatur

habe ich ein Layout, in dem meine spezielle Tastatur unterhalb des EditText sitzt so gibt es keine Notwendigkeit, die IME zu zeigen. Bitte haben Sie Verständnis, dass ich nicht meine Tastatur als IME implementieren, da sie spezifisch für diesen sehr EditText ist und es in einem anderen Zusammenhang verwendet würde nur zu Problemen führen.

Ich habe versucht, zu verwenden,

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

in der onCreate() der Aktivität, aber nicht alles, was in dieser Situation zu tun scheint.

War es hilfreich?

Lösung

Denken Sie mir einen Weg gefunden, es zu tun ... Unterklasse EditText und Überschreibung onCheckIsTextEditor() return false:

public class EditTextEx extends EditText {

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

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

Ich habe es getestet und ich kann nicht die Soft-Tastatur bekommen überhaupt zu zeigen.

Andere Tipps

editText.setInputType(EditorInfo.TYPE_NULL);

Beim Versuch, sie zum Laufen bringen ich auch versucht:

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;
    }
});

Die beiden gecallt, aber weder verstecken die IME-Pop-up.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top