2

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

解决这个问题的最佳方法是什么?

4

4 回答 4

5

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

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)
    {
    }
});
于 2013-01-08T15:31:51.423 回答
2

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

android:hint="Max. 150 characters"

在此处输入图像描述

于 2013-01-08T15:38:07.110 回答
1

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

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

安卓:m​​axLength="150"

希望这可以帮助

于 2013-01-08T15:47:10.347 回答
0

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

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

在这里:https ://stackoverflow.com/a/46922794/2468360

于 2017-10-25T02:25:50.153 回答