Android setError():可视化指向错误字段的错误消息

时间:2014-07-02 17:39:30

标签: android android-edittext

我使用setError()来显示验证错误。在一种情况下,字段靠近屏幕的左侧,当出现错误消息时,它在视觉上指向错误的EditText字段 - 而不是指向显示1234的字段,它应该指向左侧的空白字段,请参见附件截图。有谁知道解决这个问题?谢谢!

截图是在运行 Android 4.4.2。

的Galaxy 3手机上拍摄的

enter image description here

2 个答案:

答案 0 :(得分:1)

我有一个解决方法,添加\ n来格式化消息并减少每行的宽度:

text1.setError("this field must\nbe 1 character\nin length");

答案 1 :(得分:0)

这是您的问题的解决方案.. 试试这个..

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

            }