限制Android中EditText文本长度的最佳方法是>> [[

问题描述 投票:653回答:20
限制Android中EditText的文本长度的最佳方法是什么?

有没有办法通过xml做到这一点?

在Android中限制EditText文本长度的最佳方法是什么?有没有办法通过xml执行此操作?

android android-edittext maxlength
20个回答
1294
投票

11
投票
Xml

8
投票
<EditText android:id="@+id/input" android:layout_width="0dp" android:layout_height="wrap_content" android:inputType="number" android:maxLength="6" android:hint="@string/hint_gov" android:layout_weight="1"/>

5
投票
<com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:counterEnabled="true" app:counterMaxLength="1000" app:passwordToggleEnabled="false"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/edit_text" android:hint="@string/description" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="1000" android:gravity="top|start" android:inputType="textMultiLine|textNoSuggestions"/> </com.google.android.material.textfield.TextInputLayout>

4
投票
android:maxLength="10"

2
投票
import android.content.Context; import android.text.InputFilter; import android.util.AttributeSet; import android.widget.EditText; public class EditTextMultiFiltering extends EditText{ public EditTextMultiFiltering(Context context) { super(context); } public EditTextMultiFiltering(Context context, AttributeSet attrs) { super(context, attrs); } public EditTextMultiFiltering(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setMaxLength(int length) { InputFilter curFilters[]; InputFilter.LengthFilter lengthFilter; int idx; lengthFilter = new InputFilter.LengthFilter(length); curFilters = this.getFilters(); if (curFilters != null) { for (idx = 0; idx < curFilters.length; idx++) { if (curFilters[idx] instanceof InputFilter.LengthFilter) { curFilters[idx] = lengthFilter; return; } } // since the length filter was not part of the list, but // there are filters, then add the length filter InputFilter newFilters[] = new InputFilter[curFilters.length + 1]; System.arraycopy(curFilters, 0, newFilters, 0, curFilters.length); newFilters[curFilters.length] = lengthFilter; this.setFilters(newFilters); } else { this.setFilters(new InputFilter[] { lengthFilter }); } } }

2
投票
android:maxLength="4"

2
投票
android:maxLength="10"

1
投票
1,极限长度。2,如果输入更多,请回调以触发吐司。3,光标可以在中间或尾部。4,用户可以通过粘贴字符串输入。5,始终丢弃溢出输入并保持原点。

1
投票

0
投票

[Java

以编程方式

330
投票
使用输入过滤器限制文本视图的最大长度。

0
投票
edit_text.filters += InputFilter.LengthFilter(10)

192
投票
EditText editText = new EditText(this); int maxLength = 3; editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)});

64
投票
给已经在使用自定义输入过滤器并且想限制最大长度的人的说明:

38
投票

23
投票

17
投票

16
投票

15
投票
© www.soinside.com 2019 - 2024. All rights reserved.