我有3個EditText元素,如果輸入中有4個字符,我想從一個字段跳轉到下一個字段。使用TextWatcher計算字符在HTC longpress上失敗
我使用TextWatcher此:
getEditView(R.id.edit_code1).addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void afterTextChanged(Editable input) {
if(input.length() == 4){
getEditView(R.id.edit_code2).requestFocus();
}
}
});
的EditText上的的inputType是「textCapCharacters」
在做一個鍵長按,以得到一個數字,就像是捧着R鍵得到4 ,大多數設備將不會添加該字母,直到用戶停止按住該按鈕,並且在選擇字母4之後將在文本更改後觸發。在HTC鍵盤(在這種情況下,2.3.5上的HTC Desire)情況並非如此。即使用戶仍然按住按鈕,R被添加到EditText中,afterTextChanged被觸發,代碼完成其工作並將焦點放在下一個字段上。
這種不良行爲如何防止?觀看onKeyDown/Up將無濟於事,因爲它不會註冊正常的擊鍵。
這就是我所害怕的,謝謝,我將離開選擇給客戶。無論如何,HTC鍵盤上始終可以使用數字輸入而不是longpress。 – Jurriaanr 2012-03-21 13:01:35