【发布时间】:2019-02-04 01:22:08
【问题描述】:
我正在使用 EditText's 接受 OTP,一旦用户在字段中输入数字等,他就会专注于下一个 EditText。它适用于所有设备。 但在运行 android OS P 即 API 28 的设备上,requestFocus() 不起作用,并且用户无法将数字输入到连续的 EditTexts,因为焦点不会自动移动。
这里是代码 - 默认情况下所有EditText's 都被禁用以防止打开系统键盘。我正在使用我自己的CustomKeybaord 来接受数字。但是它可以在 Android P 之外运行。
mEtCode1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
Log.d("BEFORE_", charSequence.toString());
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
hideError(charSequence.toString());
if (!charSequence.toString().isEmpty()) {
mEtCode2.requestFocus();
mEtCode1.setBackground(getResources().getDrawable(R.drawable.verify_code_edit_text_background));
mEtCode2.setBackground(getResources().getDrawable(R.drawable.verify_code_edit_text_background));
mEtCode1.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
请帮我解决这个问题
提前谢谢你
【问题讨论】:
-
你能贴出你的代码吗
-
@jle 在我的情况下它依赖于操作系统,对于其余的 android 操作系统版本它工作正常。
-
@Sniffer 我只调用了一行,即
onRequestFocus(),它不起作用,我没有关注EditText。 -
在你的清单文件中检查这个 android:windowSoftInputMode="stateAlwaysVisible"
标签: android