超出EditText限制时的警报用户

时间:2013-01-08 15:29:31

标签: android android-edittext android-alertdialog

我想将EditText字段限制为150个字符,我可以很容易地做到这一点。但是,我还需要在用户尝试超过该限制时提醒用户,方法是键入(即第151个字符)或粘贴超过150个字符。

最好的方法是什么?

4 个答案:

答案 0 :(得分:3)

通过EditText的addTextChangedListener()方法添加TextWatcher。只需针对您的用例实施适当的方法。也许会显示警告对话框?

EditText text = (EditText) findViewById(R.id.text);
text.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {
        if (s.length() > n)
        {
            new AlertDialog.Builder(MyActivity.this).setTitle("Character limit exceeded").setMessage("Input cannot exceed more than " + n + " characters.").setPositiveButton(android.R.string.ok, null).show();
        }
    }

    @Override
    public void afterTextChanged(Editable s)
    {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {
    }
});

答案 1 :(得分:1)

为什么要这么麻烦,只需将提示属性设置为“最多150个字符”

android:hint="Max. 150 characters"

enter image description here

答案 2 :(得分:1)

最好通过此属性将字符数限制为150,

http://androidblogger.blogspot.com/2009/01/numeric-edittext-and-edittext-with-max.html

机器人:最大长度= “150”

希望这有帮助

答案 3 :(得分:0)

我已经看到了很多很好的解决方案,但我想提供一个我认为更完整和用户友好的解决方案,其中包括:

1,限制长度。 2,如果输入更多,给予回调以触发你的祝酒词。 3,光标可以在中间或尾部。 4,用户可以通过粘贴字符串输入。 5,始终丢弃溢出输入并保留原点。

此处:https://stackoverflow.com/a/46922794/2468360