2012-04-17 75 views
1

我有一個用戶報告我的應用程序有錯誤。我的佈局中有幾個EditText字段。我只希望用戶能夠輸入帶符號的十進制數字。但是,我沒有佈局聲明他們是number|numberSigned|numberDecimal,因爲我有一個自定義TextWatcher附加到這些字段處理輸入,並確保它是正確的。我這樣做是因爲我希望減號鍵用作切換。Android虛擬鍵盤按鈕被錯誤地禁用(Kindle Fire)

比方說,該字段中有「300」。如果用戶點擊減號,我的自定義TextWatcher攔截並將其變成「-300」而不是「300-」。如果他們再次減去減號,它將刪除現有的減號並將其更改爲「300」。

這對幾乎所有人都適用,但它不適用於Kindle Fire。虛擬鍵盤上的小數點和減號鍵被禁用,所以他們甚至沒有選擇輕敲這些鍵並讓自定義文本觀察器完成其工作。

如果我確實聲明字段爲number|numberSigned|numberDecimal,那麼這些字段不會讓用戶點擊減號鍵,除非光標位於最左邊的位置(即在300之前)。

如何告知Kindle Fire確保小數點和減號鍵需要激活,但同時不會限制用戶允許的輸入,然後才能達到我的自定義TextWatcher ......您知道,每一個其他的Android設備一直在爲我工作? :)

+0

有一種方法來強制數字鍵盤沒有限制EditText爲「數字」。這可能適用於你,因爲它可以讓Fire輸入「300-」。我只是不記得如何:O) – zapl 2012-04-17 23:30:41

+0

'theEditText.setRawInputType(Configuration.KEYBOARD_12KEY)'可能會有所幫助。禁用'-'聽起來很奇怪。 – zapl 2012-04-17 23:40:20

+0

我試過了,沒有幫助。 :( – 2012-04-19 21:32:52

回答

0

從@zapl答案:

theEditText.setRawInputType(Configuration.KEYBOARD_12KEY) 

工作!去找他的一些其他好的答案,並上傳他,以便他可以得到適當的信貸這個答案。 ;)