在EditText框中达到大小限制后,阻止用户插入更多字符

时间:2014-03-26 12:58:27

标签: android android-edittext android-alertdialog

我想阻止用户在包含编辑文本实例的警报对话框中插入多于一定数量的字母。我尝试使用输入过滤器。长度过滤器,但仅显示最多为请求长度的字符串。用户仍然可以写更多的字符,当我尝试删除字符时,没有任何反应,直到我删除足够多的字符使该字短于限制(类似的键盘记住键)。

编辑: 为了更清楚,我已经尝试过使用InputFilter。这确实强制传递给EditText的字符串大小,但正如我所说,我仍然可以继续用键盘写字母,这些字母没有显示在文本框中。当我点击删除时,它首先删除多余的字母,并且只有在删除了足够的字母后,才开始看到文本框中的字母删除。我请求的场景:将字符串限制设置为10.在键盘上点击15个字符。然后点击退格键,看到文本框中的最后一个字母被删除。 我希望现在更清楚了。

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:4)

您可以在AndroidManifest.xml

中使用以下EditText文件
android:maxLength="8"

现在,用户无法在EditText中添加超过8个字符。

答案 1 :(得分:4)

可能是迟到但如果有人遇到同样的问题。

布局:

android:inputType="textNoSuggestions|textVisiblePassword"
android:maxLength="20"

编程方式:

setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

答案 2 :(得分:0)

您也可以在运行时通过分配

来设置此属性
youredittext.setMaxLength(8);

你告诉你在编辑文本里面有警告对话框,所以在运行时设置它并尝试一下。

答案 3 :(得分:0)

SEE THIS

TextView editEntryView = new TextView(...);
InputFilter[] filterArray = new InputFilter[1];
filterArray[0] = new InputFilter.LengthFilter(8);
editEntryView.setFilters(filterArray);

答案 4 :(得分:0)

有关部分解决方法,请参阅此答案:https://stackoverflow.com/a/19222238/933656

您将能够立即删除EditText中的最后一个字符,因为没有要显示的键盘预览(假设所有第三方键盘都尊重textNoSuggestions标志)。唯一的问题是你丢失了建议文本。