Mam kilka pól EditText w aplikacji na Androida i użyłem androida: cyfry do zatrzymania wprowadzania nieprawidłowych znaków.Używanie atrybutu Android: Digits do ograniczania znaków zatrzymuje działanie Następny przycisk działa
np android:digits="@string/validchars"
(gdzie „validchars” jest zasobem ciąg wszystkich prawidłowych znaków - np AZ, 0-9, a niektóre interpunkcyjnych)
Problem jest, gdy użytkownik wciśnie klawisza ENTER na miękkiej klawiaturze używał ich do następnego pola, ale odkąd dodałem bit android: cyfry, to przestało działać. Próbowałem dodać \ n do validchars
, ale to po prostu pozwala Zwroty Carriage w pojedynczych liniach tekstowych (!), Więc nie pomaga. Próbowałem gryźć z imeOptions (dodając actionNext
itp.), Ale to też nie wydaje się to naprawić. Przeczytałem o TextWatchers i InputFilters, ale oba wydają się być zbyt skomplikowane dla tego, co próbuję zrobić i bit android:digits
działa dobrze w zatrzymywaniu nieprawidłowych znaków.
Czy ktoś ma jakieś pomysły?
Używam Androida SDK w wersji 8 i kierujemy reklamy na urządzenia 2.2 i 2.3.5.
Ewentualnie, jeśli użytkownik chce mieć opcję "gotowe" zamiast następnej, zobacz to pytanie, które jest powiązane z http://stackoverflow.com/questions/1919742/android-editview- done-button – CrimsonX
android: singleLine przestarzałe = (czy jest jakikolwiek inny sposób? –
Wierzę, że powinieneś teraz użyć maxLines = "1" – Buzby