#android #android-edittext
#Android #android-edittext
Вопрос:
Я использую setError()
для отображения ошибок проверки. В одном случае поле находится близко к левой части экрана, когда появилось сообщение об ошибке, оно визуально указывало на неправильное EditText
поле — вместо указания на поле, показывающее 1234, оно действительно должно указывать на пустое поле слева, см. прилагаемый снимок экрана. Кто-нибудь знает решение этой проблемы? Спасибо!
Снимок экрана был сделан на телефоне Galaxy 3 под управлением Android 4.4.2.
Ответ №1:
У меня есть один обходной путь, добавьте n для форматирования сообщения и уменьшите ширину каждой строки:
text1.setError("this field mustnbe 1 characternin length");
Ответ №2:
Это решение вашей проблемы.. Попробуйте это..
EditText edt1=(EditText) findViewById(R.id.editText2);
EditText edt2=(EditText) findViewById(R.id.editText3);
EditText edt3=(EditText) findViewById(R.id.editText1);
// Reset errors.
edt1.setError(null);
edt2.setError(null);
edt3.setError(null);
String txt3 = edt3.getText().toString().trim();
String txt1 = edt1.getText().toString().trim();
String txt2=edt2.getText().toString().trim();
boolean cancel = false;
View focusView = null;
if (TextUtils.isEmpty(txt3)) {
edt3.setError(getString(R.string.error_field_required));
focusView = edt3;
cancel = true;
}
if (TextUtils.isEmpty(txt2)) {
edt2.setError(getString(R.string.error_field_required));
focusView = edt2;
cancel = true;
}
if (TextUtils.isEmpty(txt1)) {
edt1.setError(getString(R.string.error_field_required));
focusView = edt1;
cancel = true;
}
if (cancel) {
focusView.requestFocus();
} else {
//do the operations you want do here
}