2010-07-09 21 views
13

Pracuję nad aplikacją na Androida, w której używamy WebView do wyświetlania strony internetowej obsługiwanej z serwera WWW. Wszystko działa dobrze, z wyjątkiem problemu polegającego na tym, że kiedy korzystam z miękkiej klawiatury i przełączam się na wprowadzanie z klawiatury numerycznej i przechodzę z pierwszego pola do następnego pola, układ klawiatury automatycznie zmienia się na alfanumeryczny.Numeryczna klawiatura miękka na Androida

Czy istnieje sposób, za pomocą którego mogę podnieść wirtualną klawiaturę w trybie numerycznym tylko wtedy, gdy muszę wprowadzić tylko liczby?

Dzięki i Pozdrawiam.

+0

Jak możemy ustawić domyślną klawiaturę numeryczną, gdy użytkownik ustawia ostrość na polu edycji strony internetowej, gdzie input = number? –

Odpowiedz

0

Czy istnieje jakiś sposób, za pomocą którego mogę podciągnąć wirtualną klawiaturę numeryczną w trybie tylko kiedy muszę wpisać tylko cyfry ?

Tak można określić android:inputType atrybut XML z wartością number lub numberDecimal:

<EditText 
android:text="" 
android:id="@+id/editTextNumber" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:inputType="numberDecimal"> 
</EditText> 

Zapraszamy !!

+0

wypróbowałeś to z Webview? @Shivaansh –

+1

Witaj Paresh. Dzięki za odpowiedź. Mamy ten problem tylko w stosunku do wykorzystania WebView. –

+1

Tak, pytanie dotyczy pól wprowadzania widoku sieciowego. – Ixx

28
editTextField.setRawInputType(Configuration.KEYBOARD_QWERTY); 

Pokazuje najpierw normalną klawiaturę z wersją numeryczną, ale pozwala przełączać się między nimi.

getInput.setRawInputType(Configuration.KEYBOARD_12KEY); 

To pokazuje tylko numeryczne, bez opcji wprowadzania wartości tekstowych.

Wpadłem na podobną sytuację. Chciałem tylko wartości liczbowe, ale mam "podpowiedź", która była tekstem. Ustawienie parametru inputType na numer nie pozwoliłoby na wyświetlenie podpowiedzi. Działa to dobrze.

+5

nie powinieneś używać InputType.TYPE_CLASS_NUMBER zamiast Configuration.KEYBOARD_QWERTY, a InputType.TYPE_CLASS_PHONE zamiast Configuration.KEYBOARD_12KEY? są to te same wartości int, więc mają ten sam wpływ, ale myślę, że są to poprawne typy. – SteelBytes

+0

to działa dla mnie. Dzięki! – rDroid

+0

user455451, Mam ten sam problem i wypróbowałem twoją metodę. Niestety, to nie działa: jeśli użyję TYPE_CLASS_NUMBER (lub Configuration.KEYBOARD_QWERTY - kody są takie same) otrzymuję numeryczną klawiaturę BEZ możliwości przełączenia jej na wpisywanie tekstu. Może problem dotyczy Androida? Mam wersję 2.1. –

1

Jeśli mówimy o HTML, można użyć funkcji HTML5, na przykład:

Number: <input type="number" name="points" min="1" max="10" /> 

sprawdzili to w przeglądarce HTC Desire, a to wywołuje różne (numeryczna) klawiaturę podczas wprowadzania danych do takich pole.

+0

Tak, to powinno działać w wielu okolicznościach. Jeśli jednak używasz jQueryMobile dla aplikacji przeglądarki HTML5, typ = number nie uruchamia klawiatury numerycznej. – Wytze

+0

Dla mojej aplikacji PhoneGap określenie type = "number" wywołało tylko klawiaturę numeryczną po wprowadzeniu przez użytkownika jednego znaku. Ten jQuery naprawił to dla mnie (gdzie wszystkie takie wejścia mają klasę pinów): $ (". Pin"). Live ('tap', function() { \t \t $ (this) .focus(); \t }); –

2

Configuration.KEYBOARD_12KEY lub Configuration.KEYBOARD_QWERTY jest nieprawidłowy sposób.

Musisz użyć InputType (show doc here) na EditText setRawInputType().

+1

Ustawienie typu surowego wejścia na TYPE_CLASS_NUMBER nadal blokuje większość miękkich wejść w trybie tylko liczby. –

Powiązane problemy