【问题标题】:Display a warning if characters on EditText don't meet the required length如果 EditText 上的字符不符合要求的长度,则显示警告
【发布时间】:2017-03-26 17:29:36
【问题描述】:

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

假设 maxLength 为 17,用户输入 15 个字符,如何警告他们和/或执行一些操作(例如禁用肯定按钮等)

【问题讨论】:

    标签: android android-edittext content-length


    【解决方案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 在运行时检查条件。

    【讨论】:

    • 这看起来很简单。试。谢谢
    • 或者你也可以做 onFocusOut
    • @rafsanahmad007,为什么 getApplicationContext 给出“无法解决”错误?
    • 如果你在片段中你需要使用'getActivity()'来代替
    【解决方案2】:

    您可以使用 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
    } 
    

    });

    你可以在 onTextChanged() 方法中检查字符串的长度,然后触发所需的操作。

    祝你好运

    【讨论】:

      【解决方案3】:

      你有两个选择:

      在 EditText 中添加一个 TextWatcher,如果用户填写的数量少于最小数量,则显示一个错误,并显示 android.support.v7.widget.AppCompatEditText 的 setError 错误,该错误应该在 android.support.design.widget.TextInputLayout 内

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

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

      【讨论】:

      • 感谢您的建议。现在试试
      猜你喜欢
      • 2021-07-03
      • 2021-05-26
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      相关资源
      最近更新 更多