Android设置edittext最大限制(以字节为单位)



在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" />

相关内容

最新更新