Android: Notwendigkeit, eine EditText für nicht leere Eingabe zu validieren
-
01-10-2019 - |
Frage
Wenn ich eine maximale Länge der Eingabe in einem EditText Feld erzwingen mag, kann ich das maxLength Attribut verwenden. Aber wenn ich eine Mindestlänge erzwingen möge (in meinem Fall einfach nicht leer), finde ich kein entsprechendes minLength Attribut.
Ich habe auch bei dem verschieden ‚input‘ Attributen (Telefon, Passwort, usw.) gesucht, aber ich sehe nichts wie ‚erforderlich‘ oder ‚Nicht-leer‘.
Ich kann nicht glauben, dass dies einen benutzerdefinierten Eingangsfilter erfordern würde; es ist wahrscheinlicher, die Antwort so offensichtlich ist es nicht erhalten in der Form einfach nicht abgewertet ich die Frage bin gefragt.
Lösung
Sie können einfach prüfen, ob yourField.text () auf null nicht entspricht oder „“ an der Stelle der Unterwerfung. Wenn es ist, fordert den Benutzer zur Eingabe von etwas.
Andere Tipps
Carefull mit etwas though. Wenn Sie eine Submit-Button haben, zum Beispiel, und Ihre Benutzer drücken einreichen, ohne den Fokus aus Ihrer TextEdit zu ändern, Ihre Methode wird nicht aufgerufen werden.
Nehmen Sie eine Aktivität mit 2 EditTexts und 1 Schaltfläche mit dem Namen "Go":
1) Benutzer schreibt etwas in EditText1
2) Der Nutzer klickt auf EditText2
3) Statt writting etwas da nur Klicks gehen.
Ihre onFocusChanged () Methode wird nicht aufgerufen, da der Fokus nicht „verloren“.
Wenn Sie eine Validierung in Ihrem Go button_click Methode haben, wird es auslösen, natürlich, aber Sie werden Ihr Ziel nicht erreichen „Ich war auf der Suche / erhofft war ein Weg, ein sofortiges Feedback zu geben“
Sie können versuchen, TextWatcher verwenden.