2012-05-07 182 views
10

我有一個EditText需要根據狀態來處理數字和/或字母輸入。在某些情況下,用戶可以輸入任何一種輸入。我只能使用setInputType (InputType.TYPE_CLASS_NUMBER);這個功能彈出「手機」鍵盤,但不允許用戶回到QWERTY鍵盤。由於大部分輸入的確是數字,我想在大多數時間向用戶展示?123鍵盤。他們只需要幾次返回QWERTY鍵盤。如何彈出「?123」Android鍵盤

如何彈出用於字母輸入的屏幕QWERTY鍵盤,然後彈出「?123」鍵盤(如果是數字)?我只想爲用戶保存一個步驟,以便他們不必每次都按QWERTY鍵盤上的?123按鈕。

更新:這是我想看到的鍵盤。原因是我希望用戶在字母輸入和數字輸入之間輕鬆切換。無法從「數字鍵盤」切換到QWERTY鍵盤。在我的應用程序中,90%的輸入需要數值輸入,所以我想將它彈出以方便使用。換句話說,而不是切換到數字鍵盤90%的時間,他們只需要enter image description here

的調用input.setRawInputType(Configuration.KEYBOARD_QWERTY);原理不同切換到QWERTY 10%的時間在薑餅的蜂窩和更高版本(提起數字鍵盤)。在薑餅2.2.3它的工作方式我想要的。 Honeycomb和2.3.7鍵盤screengrabs以供參考。我不知道他們爲什麼如此不同。

Honeycomb 3.2 keyboard for Configuration.KEYBOARD_QWERTY Gingerbread 2.3.7 keyboard for Configuration.KEYBOARD_QWERTY

+0

的可能重複[?我怎麼默認爲數字鍵盤上的EditText不強制數字輸入(http://stackoverflow.com/questions/6153796/如何做我默認數字鍵盤上編輯文本沒有強制數字輸入) –

+0

謝謝,但該帖子似乎處理數字鍵盤。有一個非常高調的回答說:「..也允許你輸入自由文本。」但我不知道你在哪裏做。鍵盤上沒有按鈕可以這樣做。請參閱我的問題的更新。希望澄清。 – wufoo

+0

請注意,許多手機將有不同的鍵盤。例如,三星手機默認爲Swype,或者您可以從市場上下載鍵盤。 – Jonas

回答

0

我相信這post回答你的問題。

總之添加到您的代碼:

editText.setRawInputType(Configuration.KEYBOARD_QWERTY); 
+2

謝謝我嘗試過。它似乎只是在2.2.3上做我想做的。在3.2和2.3.7上它會顯示「數字鍵盤」而不是「123」鍵盤。嗯.. – wufoo