我的問題是這樣的;EditText刪除密鑰不在第一次keydown註冊
我有一個編輯文本,並使用setKeyListener並創建一個新的NumberKeyListener。在這種情況下,當一個數字被擊中時,它按預期工作,但是當刪除/退格按鈕被擊中時,它不會在第一次X嘗試中註冊,但是在X + 1上它將會(其中X是數字)我打的鑰匙。例如,如果我輸入了5,那麼6,然後是7,我的編輯文本將讀取567,如果我點擊刪除,沒有任何反應,再次擊中它兩次,仍然沒有,在第四次擊中時,它將最終刪除7併成爲56。這很奇怪,因爲我在keydown回調中有一條日誌語句,而且它似乎甚至沒有在前3次按鍵上觸發它?
任何建議表示讚賞。
更新:我注意到,如果我點擊edittext並返回到它,我的刪除將註冊第一次點擊。是否有某種與編輯文本相關聯的按鍵緩衝區需要清除或什麼?
myedittext.setKeyListener(new NumberKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER;
}
@Override
public boolean onKeyDown(View view, Editable content, int keyCode, KeyEvent event) {
if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
//logic here
} else if (keyCode == KeyEvent.KEYCODE_DEL) {
Log.i("DEBUG","delete key hit");
//more logic here
}
Log.i("DEBUG","key was pressed");
update();
return true;
}
@Override
protected char[] getAcceptedChars() {
return new char[]{'0','1','2','3','4','5','6','7','8','9'};
}
});
通過上面我刪除從KeyListener的內所有的邏輯和update()
調用的代碼,所有它,只是記錄版畫,我看到了相同的行爲,它似乎不承認第一次x按下刪除。
歡迎來到Stack Overflow!你能否在你的文章中添加一些代碼? – 2011-05-11 17:07:09
請發佈您的Key Listener和相關的後續代碼。 – 2011-05-11 17:46:14
這隻適用於硬鍵,而不適用於軟鍵。採取從http://developer.android.com/reference/android/text/method/BaseKeyListener.html: 至於KeyListener的所有實現,這個類只涉及硬件鍵盤。軟件輸入法沒有義務觸發該類中的方法。 – 2013-01-31 19:35:54