Jak ustawić klawiaturę numeryczną w EditText bez wymuszania wprowadzania numerycznego? [duplikat]

To pytanie ma już odpowiedź tutaj:

To zostało poproszone gdzie indziej online bez skutku. Czy jest jakiś sposób w Androidzie, aby wyświetlać numeryczną miękką klawiaturę, gdy skupiasz się na EditText, ale nadal zezwalasz na wprowadzanie dowolnego tekstu?

Chciałbym pozwól użytkownikowi wprowadzić ilości (np. "1 kg", "2 L"), więc samo ustawienie inputType="number" nie zadziała.

Author: Rahul Tiwari, 2011-05-27

6 answers

Dodaj następującą linijkę kodu, a to załatwi sprawę:)

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

Spowoduje to wyświetlenie najpierw klawiatury numerycznej, ale także pozwoli na wprowadzenie wolnego tekstu.

Więcej informacji tutaj .

 36
Author: rDroid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:32:11

To może być zależne od urządzenia, ale czy próbowałeś:

 android:inputType="phone"

Wszystkie Typy Wejść Link

W XML EditText daje to klawiaturę klawiatury numerycznej, ale nadal możesz przełączyć się na literę, jeśli chcesz. (Przynajmniej na moim Nexus One).

 7
Author: Blundell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-27 15:00:23

Zauważ, że: setRawInputType (InputType.TYPE_CLASS_NUMBER);

Ma pożądany efekt na niektórych urządzeniach, ale nie na innych...

Na htc działa dobrze jednak na galaxy tab II dostajesz tylko klawiaturę numeryczną i nie ma możliwości przełączenia z powrotem na Alfę.

 7
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-21 12:24:14

Wpisz kod w XML, android: numeric= " integer" android: inputType= " telefon" android: cyfry= "1234567890"

 3
Author: Mostafiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-13 01:47:25

Wygląda na to, że podstawowe pytanie, z którym masz do czynienia, brzmi: jak Mogę zezwolić użytkownikowi na wprowadzanie ilości?

Jedna właściwa odpowiedź brzmi: z wejściem numerycznym, sparowanym z jakąś formą kategorii wybierz dla jednostki. np. radio, rozwijane lub spinner. Jest to prawdopodobnie łatwiejsze w użyciu, a także oszczędza ból głowy konieczności walidacji danych wejściowych za każdym razem.

Możesz też po prostu mieć żelazne cojones i napisać niestandardową miękką klawiaturę.

 2
Author: Cheezmeister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-28 05:52:02

Próbowałem wielu różnych kombinacji, zanim to rozgryzłem, ale wygląda na to, że działa poprawnie:

setRawInputType(InputType.TYPE_CLASS_NUMBER);

Klucz leży w opisie dla setRawInputType(int):

Bezpośrednio zmienić typ zawartości w widoku tekstowym, bez modyfikowanie dowolnego innego stanu .

 -1
Author: twaddington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-07 20:14:15