什么是限制EditTextAndroid 文本长度的最佳方法?
有没有办法通过xml做到这一点?
这是我的xml
<EditText
android:id="@+id/et_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions|textVisiblePassword"
android:hint="Provide comments here..."
android:gravity="top"
android:maxLength="5"
android:textSize="12sp"
android:visibility="visible"
/>
Run Code Online (Sandbox Code Playgroud)
它也不能使用此代码
TextView editEntryView = new TextView(...);
InputFilter[] filterArray = new InputFilter[1];
filterArray[0] = new InputFilter.LengthFilter(5);
editEntryView.setFilters(filterArray);
Run Code Online (Sandbox Code Playgroud)
maxLenth不起作用,我不知道为什么,但它不是.
我已经检查了堆栈上的其他答案,但它们也无法正常工作.
请检查EditText属性是否有任何冲突或有什么问题?
编辑:同样的问题所面临的其他开发人员
看评论这里同样的问题所面临曼西和AAT
而这里在同样的问题所面临的泳儿和提升评论
编辑:问题解决了
我使用输入过滤器覆盖xml中的最大长度使其无法工作.
输入过滤器对我没有用的原因是我使用的是另一个输入过滤器,它覆盖了之前的maxLength输入过滤器.
将它变成单个输入过滤器可以解决这个问题.
我想阻止用户向包含编辑文本实例的警报对话框插入多于一定数量的字母.我尝试使用输入过滤器.长度过滤器,但仅显示最多为请求长度的字符串.用户仍然可以写更多字符,当我尝试删除字符时,没有任何反应,直到我删除足够多的字符使字短于限制(类似的键盘记住键).
编辑:更清楚的是,我已经尝试过使用InputFilter.这确实强制传递给EditText的字符串大小,但正如我所说,我仍然可以继续用键盘写字母,这些字母没有显示在文本框中.当我点击删除时,它首先删除多余的字母,并且只有在删除了足够的字母后,才开始看到文本框中的字母删除.我请求的场景:将字符串限制设置为10.在键盘上点击15个字符.然后点击退格键,看到文本框中的最后一个字母被删除.我希望现在更清楚了.
有人可以帮忙吗?
我知道有几个问题已经被问过,但我的查询有点不同.
我们如何限制输入的最大字符数EditText?我是否这样做
android:maxLength="7"
Run Code Online (Sandbox Code Playgroud)
或这个
((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] {
new InputFilter.LengthFilter(7)
});
Run Code Online (Sandbox Code Playgroud)
我仍然可以输入文本字段,虽然它不可见但不考虑.如果我继续输入,输入在限制之后变得不可见,但是test-suggestions保持建立更高数量的字母.
假设我的限制是7并且我输入了10个字母,那么我只会看到前7个字母,但是文字建议会显示10个字母的单词.此外,我需要按退格3次才能真正开始删除我显示的7个字母单词中的字母.
所以,我的问题是:有没有办法在一定的字符长度后停止输入?
PS:不用说,但是虽然我不想在7个字母之后输入输入,但我会允许删除或退格.