2011-01-26 246 views
0

我想允許用戶只將某些字符輸入到galaxy選項卡(Android 2.2)上的EditText,但會阻止其他所有字符。 OnKeyListener似乎不會對軟件鍵盤做出反應。Android:阻止虛擬鍵盤上的鍵

PS:我不想阻止整個範圍的字符,如所有數字或所有特殊字符等。讓我們說只是字符't'。

請幫忙。一個小時後,我找不到解決方案。

回答

1

我相信你需要好奇和不一致的名字TextWatcher,然後用它撥打EditText.addTextChangedListener()

+0

不,我需要阻止/刪除某些字符。我認爲這對於TextWatcher來說是不可能的,因爲它會在無限循環或崩潰中遞歸地調用它自己。我用InputFilters找到了一個解決方案。 – StanE 2011-01-26 16:16:24

+0

它可能是因爲我已經完成了。自定義的InputFilter雖然可能更好。 – 2011-01-26 16:18:20

0

調用onKeyDown事件,並監聽按下的鍵,如果鍵是允許的鍵,則將其添加到您的字符串中,如果沒有,則不要將其添加到字符串中。那樣,或者在所有無效字符的keydown之後剝離字符串。試試http://www.rgagnon.com/javadetails/java-0030.html就可以得到答案。那是java代碼,但我相信所有這一切都轉化爲android。希望有幫助