Android EditText, minus umgewandelt in ein Punktereignis obwohl inputType="number | numberSigned | numberDecimal"

8

Ich habe einen Benutzer, der ein LG VS890 4G mit Android 4.4.2 besitzt. Offensichtlich jedes Mal, wenn er versucht, ein Minus in meine lat / long-Koordinateneingabe EditText einzufügen, wird sein Minus in einen Punkt umgewandelt. Er hat das gleiche Problem, wenn er die negative Koordinate in EditText einfügt.

%Vor%

Die Sache ist, dass er dies nur während der Verwendung der Soft-Tastatur erlebt. Auf der harten Tastatur funktioniert es wie erwartet.

Hier ist ein Screenshot mit seinem Handy beim Versuch, die Koordinaten einzugeben:

Ich weiß, dass dies ein inputType Problem ist, weil ich ihm einen Build ohne inputType gegeben habe und es funktioniert (außer dass sich seine Tastatur nicht mit dem numerischen Typ öffnet).

Er ist der einzige, der dieses Problem gemeldet hat und ich konnte es nicht reproduzieren. Ich möchte wirklich den Eingangstyp auf Nummer halten, so dass die Tastatur automatisch zu numerisch öffnet. Irgendwelche Ideen wie kann ich das beheben?

    
Adrian 14.09.2014, 11:25
quelle

2 Antworten

5

Dieses Layoutelement

%Vor%

sollte eine numerische Tastaturansicht mit einer Dezimalzahl und einem Vorzeichen enthalten. Auf den meisten meiner Geräte und Emulatoren ist das "." und '-' sind auf separaten Tasten, auf einem Samsung Galaxy S5 / SM-G900P / Android 4.4.2 sowohl die '.' und "-" erscheinen auf der gleichen Taste (wie auf dem Foto oben auf einem LG-Gerät, auch 4.4.2). Es erscheint auf einigen Geräten die Popup-Tastatur ist Snafu, wie es sowohl das Vorzeichen und die Dezimalzahl auf der gleichen Schaltfläche setzt.

Wenn Sie jedoch auf das erste Zeichen des Felds klicken, wird bei einem Doppelklick auf die Schaltfläche (.-) anstelle einer Dezimalzahl ein Zeichen eingegeben. Mit einem einzigen Klick wird eine Dezimalzahl eingegeben. Die Schwierigkeit besteht darin, einen Text einzugeben, um Ihren Benutzern diesen Trick zu erklären.

Vielleicht wurde dieses Design absichtlich gemacht, um Platz zu sparen. (ug, sind wir nicht einfach auf einem Asteroiden gelandet?)

Die Verwendung dieser Kombination funktioniert nicht, wie Sie vielleicht hoffen:

%Vor%

Verwenden Sie auch nicht android: numeric="decimal", da es dekrementiert wird, und auch nicht das Problem.

@Adrian Vorschlag von N / S W / E wäre eine nette Ergänzung, aber keine Alternative, da das - Zeichen immer noch benötigt wird. Einige Benutzer denken in Bezug auf die Kompassrose, einige denken - / +.

Eine Lösung besteht darin, einen benutzerdefinierten Eingabemethoden-Editor (IME) zu erstellen. Hier ist ein Beispiel benutzerdefiniertes KeyboardView .

Spezifisch für die Eingabe von Breiten- und Längengradkoordinaten: Ich werde die benutzerdefinierte IME / KeyboardView Route gehen und spezifische Behandlung für lat / long Eintrag haben, da es auch Bereichswerte für jedes Feld gibt.

    
javajon 18.11.2014, 16:46
quelle
0

Ein anderer Benutzer von mir hatte das gleiche Problem und er fand heraus, dass er doppelt auf die Strich / Punkt-Taste tippen muss, um den Strich sichtbar zu halten. Ich erwähne dies für jeden, der das gleiche Problem haben könnte.

    
Adrian 20.12.2014 12:29
quelle