在android中,我想要一个限制为255字节的编辑文本,所以当用户试图超过这个限制时,它不会让他写。
我看到的所有过滤器都使用了字符限制,甚至在xml布局中也是如此。
那么,我如何为edittext设置一个过滤器,以便将其限制为255个字节呢?
一个解决方案是.
- 在EditText上使用TextWatcher获取键入文本的字符串
- 使用myString.getBytes().length;以获取字符串的大小(以字节为单位)
-
根据以字节为单位设置的阈值对EditText执行操作。
final int threshold = 255; EditText editText = new EditText(getActivity()); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { int i = s.toString().getBytes().length; if(i < threshold){ //Action needed } } @Override public void afterTextChanged(Editable s) { } });
您需要将此示例应用于自己的解决方案。
一个Charter(char)是2个字节,如果你在editText中设置android:maxlength="128",你会得到你想要的限制
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:lines="1"
android:maxLength="128"
android:singleLine="true"
android:visibility="visible" />