我整天都在搜索,请尝试建立大多数解决方案,但仍然无法正常工作。 EditText
上有Android
的错误吗?
我有2个EditText
字段(称为edtA and edtB
),edtA
是必填字段。当我将edtA
留空并输入edtB
,然后按Enter时,我希望它集中回到edtA
并显示错误弹出窗口“必填字段为空!”。
但是现在,光标仍停留在edtB, edtA
中,并没有显示错误popup
当edtB
按下Enter键时,这是我的代码,上面已经提到了edtNO_CON
的内容:
edtNO_CAR.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
if (TextUtils.isEmpty(mNoCon)) {
edtNO_CON.requestFocus();
edtNO_CON.setError(getString(R.string.error_field_required));
} else if (edtNO_CAR.getText().toString().trim().length() > 0) {
// Do something
}
}
}
return true;
}
});
这是edtA的XML:
<EditText
android:id="@+id/confirmNO_CONTAINER"
style="@style/text14Black"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:includeFontPadding="false"
android:maxLines="1"
android:singleLine="true" />
任何人都可以帮忙吗? 谢谢您的时间。
更新:
在尝试了所有建议但没有任何变化之后,我决定使用setOnEditorActionListener
代替setOnKeyListener
,现在可以使用了!
这是我更新的代码:
edtNO_CAR.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT
|| event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
String strNoCon = edtNO_CON.getText().toString().trim();
if (TextUtils.isEmpty(strNoCon)) {
edtNO_CON.requestFocus();
edtNO_CON.setError(getString(R.string.error_field_required));
} else if (edtNO_CAR.getText().toString().trim().length() > 0) {
// Do something
}
}
return true;
}
});
答案 0 :(得分:0)
首先调用setEror,然后调用requestFocus
答案 1 :(得分:0)
尝试添加以下两行:
android:focusable =“ true” android:cursorVisible =“ true”
如果它不起作用。请更新。
答案 2 :(得分:0)
这可能会帮助您!尝试一下。 #answer