我試圖實現iPhone一樣的PIN碼授權使用4塊的EditText像這樣:Android的虛擬鍵盤事件
我使用TextWatcher檢查,如果場被改變,所以我能跳塊之間。 下面是代碼:
@Override
public void afterTextChanged(Editable s) {
if (del && index > 0) {
pin[index - 1].requestFocus();
}
else if (! del && ind < 3) {
pin[index + 1].requestFocus();
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
del = count != 0;
}
一切正常,除了當塊是空的,DEL /空格鍵被按下時,我想回到以前的塊並清除其價值的罰款。 這是TextWatcher讓我失敗的地方,因爲在空白塊中沒有做任何改變,它什麼都不做。
我嘗試過使用keyEventListener,但它只捕獲模擬器上的事件,而不是通過虛擬鍵盤在實際設備上。
任何人都可以提出一個想法,我如何捕獲DEL事件或任何其他方式來實現這一點?
是啊,我想到了這一點。但是TextWatcher綁定onTextChange事件,所以如果沒有改變,它不會觸發。如果有適當的事件發生,我仍在審閱文檔。感謝您的建議,但 –