我想将EditText字段限制为150个字符,我可以很容易地做到这一点。但是,我还需要在用户尝试超过该限制时提醒用户,方法是键入(即第151个字符)或粘贴超过150个字符。
最好的方法是什么?
答案 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"
答案 2 :(得分:1)
最好通过此属性将字符数限制为150,
http://androidblogger.blogspot.com/2009/01/numeric-edittext-and-edittext-with-max.html
机器人:最大长度= “150”
希望这有帮助
答案 3 :(得分:0)
我已经看到了很多很好的解决方案,但我想提供一个我认为更完整和用户友好的解决方案,其中包括:
1,限制长度。 2,如果输入更多,给予回调以触发你的祝酒词。 3,光标可以在中间或尾部。 4,用户可以通过粘贴字符串输入。 5,始终丢弃溢出输入并保留原点。