Android设置edittext max limit(以字节为单位)

时间:2015-11-11 12:12:55

标签: android android-edittext

在android中,我想要一个限制为255个字节的编辑文本,所以当用户试图超过这个限制时,它就不会让他写了。

我看到的所有过滤器都使用字符限制,即使在xml布局中也是如此。

那么如何设置一个过滤器到edittext以限制为255个字节?

2 个答案:

答案 0 :(得分:4)

一种解决方案是。

  • 在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) {
    
        }
    });
    

您需要将此示例应用于您自己的解决方案。

答案 1 :(得分:-1)

一个Charterer(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" />