EditText auf Zahlenbereich 0-85 einschränken

  • Antworten:2
SebastianE
  • Forum-Beiträge: 37

21.06.2012, 18:20:04 via Website

Hallo,

meine Activity enthält ein EditText. Darin sollen nur einstellige bis maximal zweistellige Ziffern, zwischen 0 und 85 (Typ: byte) eingegeben werden.
Mein Problem bei der Sache ist das ich eine Zahl erst gar nicht im EditText anzeigen soll wenn sie den Bereich (0-85) überschreitet. Ich kann also nicht nach der Eingabe das EditText lesen und entsprechend eine Meldung ausgeben wenn der Bereich überschritten worden ist. Es soll eine Bereichsüberschreitung abgefangen werden bevor die Zahl im EditText ankommt.

Wenn also eine 8 eingegeben worden ist, wird die 8 im EditText angezeigt. Wenn nicht der OK Button gedrückt wird sondern eine andere Zifferntaste z.B. die 3 dann wird der Inhalt des EditText zu 83 erweitert.

Wird jedoch nach der 8 eine 9 eingeben wären das 89 und damit der Eingabebereich überschritten. Hier soll dann die 9 erst gar nicht angenommen werden sondern es soll bei der 8 im Edittext bleiben.

Ich hab mir bereit den Textwatcher und den Inputfilter angesehn die ich zugegeben nicht ganz in der Anwendung verstehe aber was ich verstanden habe läßt mich vermuten das ich damit nicht weiterkomme. Ein OnKeyListener Event habe ich auch schon versucht zu implementieren bis ich dann gelesen habe das dies erst ab Android 2.3 möglich ist. Ich benötige eine Lösung für Froyo 2.2.

Mir fällt erhlich gesagt einfach nix ein wie ich die Eingabe sozusagen "Live" beeinflussen kann das der Zahlenbereich nicht überschritten wird.

Wäre für Denkanstöße und Tips sehr dankbar.

Gruß,
SebastianE

Antworten
SebastianE
  • Forum-Beiträge: 37

21.06.2012, 19:37:54 via Website

Hallo Maximilian,

Danke für den Link, das ist echt ne kurze Erklärung ohne viel drummrumm.
Hab das gerade mal ausprobiert aber die einzige Methode die mir helfen würde wäre:

"beforeTextChanged" um dort eventuell eine Eingabe abzufangen?!

This method is called to notify you that, within s, the count characters beginning at start are about to be replaced by new text with length after.

Naja geht aber leider nicht. Ich müßte ja dann alle Werte abfangen die 85 in der Summe überschreiten. Ich dachte man hätte die Taste abfangen können wenn die Summe größer 85 ist.

Dazu muß ich sagen das die Eingabe einfach über Zifferntasten (Buttons 0 - 9) auf der Activity durchgeführt wird und nicht über das Softkeyboard.

Gruß,
SebastianE

Antworten