如果EditText上的字符不符合所需长度,则显示警告

时间:2017-03-26 17:29:36

标签: android android-edittext content-length

如果用户没有在EditText上放置所需数量的字符,如何显示警告?

让我们说maxLength是17,用户输入15个字符,如何警告和/或执行某些操作(例如禁用正按钮等)

3 个答案:

答案 0 :(得分:1)

你可以使用textChangeListener:

EditText et = (EditText)findViewById(R.id.my_edit_text);
et.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int     after) {
    // TODO Auto-generated method stub
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    //check the Strings length here and display warning
} 

});

yoy可以检查onTextChanged()方法中字符串的长度,而不是调整所需的操作。

祝你好运

答案 1 :(得分:1)

您有两种选择:

将TextWatcher添加到EditText,如果用户填写的数量少于最小数量,则显示错误,其中包含android.support.v7.widget.AppCompatEditText的setError错误,该错误应位于android.support.design.widget.TextInputLayout中

但是使用这种方法,当用户填写编辑时,您将提示用户。

我的建议是仅在用户点击“确定”按钮时进行验证,这样您就不会显示某种错误并打扰用户。

答案 2 :(得分:1)

试试这个:在按钮点击期间检查有效性条件

 button_submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //etNumber is your Edittext
            if (etNumber.getText().toString().trim().length() != 17) {
            //required length
             Toast.makeText(getApplicationContext(), "Number not valid", Toast.LENGTH_SHORT).show();
            etNumber.requestFocus();
            }
        }
    });

选项2

您可以使用TextWatcher在运行时检查条件。