Android: Wie IME für ein EditText auszuschalten?
-
29-09-2019 - |
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.
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.