我有一个视图,其中包含4个针脚传递的编辑文本。我希望他们这样做的是当用户将数字放入第一个编辑文本时,焦点会改变并转到第二个编辑文本。从第二到第三,从第三到第四。这是代码:
private View.OnKeyListener onKeyListener = new View.OnKeyListener() {
@Override
public boolean onKey(final View v, int keyCode, KeyEvent event) {
if (isKeycodeADigit(keyCode) && event.getAction() == KeyEvent.ACTION_DOWN) {
switch (v.getId()) {
case R.id.passcode_first:
requestEditTextFocus(mSecondDigit);
replaceDigitIfEditTextNotEmpty(mFirstDigit, keyCode);
break;
case R.id.passcode_second:
replaceDigitIfEditTextNotEmpty(mSecondDigit, keyCode);
requestEditTextFocus(mThirdDigit);
break;
case R.id.passcode_third:
replaceDigitIfEditTextNotEmpty(mThirdDigit, keyCode);
requestEditTextFocus(mFourthDigit);
break;
case R.id.passcode_fourth:
replaceDigitIfEditTextNotEmpty(mFourthDigit, keyCode);
break;
default:
break;
}
}
return false;
}
};
private void requestEditTextFocus(final EditText editText) {
editText.requestFocus();
int selection = editText.length() == 0? 0 : 1;
editText.setSelection(selection);
}
在api> = 20时一切正常但在较低的机器人焦点上不会向前传递。 有什么想法吗?