2016-06-27 7 views
0

Ich hatte eine Frage zur Eingabe, während die Android-Tastatur aktiv ist. Ich mache eine Validierung (am Backend) und ich brauche die Möglichkeit, die Tastatur zu deaktivieren, nachdem eine einzelne Taste gedrückt wurde. Ich möchte die Tastatur nicht entfernen. Ich will nur die Fähigkeit, es zu deaktivieren, während ich es dann wieder aktiviere. Ich kann nicht herausfinden, wie das geht. Vielen Dank.Android deaktiviert die Tastatureingabe, wenn die Tastatur hochgefahren ist

+0

möglich duplizieren: http://stackoverflow.com/questions/25216749/softkeyboard-open-and-close-listener-in-an-activity-in-android – David

+0

@David ist dies leider kein Duplikat von diesem p ost, ich möchte Ansichten aufrecht erhalten, einfach Benutzereingaben deaktivieren, während die Tastatur hochgefahren ist. Die einzige Lösung, die ich mir vorstellen kann, ist, dass der Benutzer etwas eintippt, dann alles, was der Benutzer nach dem automatischen Löschen tippt, bis ich verifiziere, was er zuerst eingegeben hat. Zum Beispiel gibt jemand "cat" ein, sie drücken zuerst die "c" Taste I Verifizierung, falls nicht, wenn der Benutzer "a" anklickt, lösche ich, bis ich die Eingabe "c" verifiziere. –

Antwort

0

Sie immer die Eingangsfilter verwenden können, diese sortieren:

In Ihrem onCreate():

editText = (EditText)findViewById(R.id.edittext); 
setEditTextMaxLength(1); 

if(verifiedAtBackend()) { 
    editText.setFilters(new InputFilter[] {}); 
} 

die Methode jetzt erstellen, die Ihre Eingabe 1 Zeichen begrenzen würde:

private void setEditTextMaxLength(int length) { 
    InputFilter[] FilterArray = new InputFilter[1]; 
    FilterArray[0] = new InputFilter.LengthFilter(length); 
    editText.setFilters(FilterArray); 
} 

private boolean verifiedAtBackend() { 
    //call your backend and see if the verification is true. If it is, return true and the filter would get removed. 
} 
+0

Ich würde sagen, dass dies nahe ist, was ich brauche. Ich beginne mit einem Anfangswert, wobei die Zeichenanzahl variieren kann (1/2/3/4/5/6 Ziffern). Es blockiert die Eingabe aber nach dem Einstellen des Filters, was nett ist. Ich könnte in der Lage sein, einen benutzerdefinierten EIDT-Text zu erstellen, der sich von dem Android-Widget erstreckt, das dies dann nutzen könnte. Es würde einige ordentliche Feinabstimmungen erfordern und viele zusätzliche Zuhörer verwenden müssen. Ich hoffe auf eine einfachere Lösung –

+0

Ich sollte auch erwähnen, dass ich die Eingabe überprüfen muss, bevor Sie es auf dem Bildschirm setzen. Was wäre toll, wenn ich nicht "." oder "," (Punkt oder Komma), da für diese keine Schlüsselereignisse ausgelöst werden. –