我想以编程方式设置maxLength属性,TextView因为我不想在布局中硬编码.我看不到任何set与之相关的方法maxLength.
谁能指导我如何实现这一目标?
如何设置Android EditText输入的最大字符数?我看到setMaxLines,setMaxEMS,但没有任何字符数.
我在EditText字段中设置了最大文本长度.
<EditText
android:id="@+id/courseDescriptionField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:lines="5"
android:maxLength="@integer/max_course_description_limit"
android:gravity="left|top" >
</EditText>
Run Code Online (Sandbox Code Playgroud)
然而,问题是,文本STOPS出现在140个字符之后,但它仍然继续输入,除了文本没有出现,但是,它确实出现在"缓冲区"(意思是建议事物)中这就是你所说的.
作为旁注,我使用TextWatcher来跟踪限制.有没有办法完全限制文本的数量,所以当有140个字符时,按下退格/删除以外的其他内容时没有任何反应?
可能重复:
限制Android中EditText的文本长度
我是Activity上的textView,它是根据它从JSON响应接收的参数显示的,我需要将它限制为仅12个字符.
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/includeheadersetting"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="Name"
android:textColor="#000000"
android:textStyle="bold" />
Run Code Online (Sandbox Code Playgroud) 这是我的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输入过滤器.
将它变成单个输入过滤器可以解决这个问题.
我有一个EditText字段,变量名称valueInputField.
我听文本输入更改,我想要实现的是在输入过程中,当输入格式与正则表达式不匹配时,我想停止显示更多输入,但保持字段集中并且用户能够键入键盘仍然只是没有真正的效果将采取该领域.
@OnTextChanged(R.id.value_input)
protected void onTextChanged(CharSequence charSequence) {
String inputChars = charSequence.toString().trim();
// if doesn't match regular expression, stop showing more inputs
if (!inputChars.matches(MY_REGEXP)) {
// this doesn't achieve what I need.
valueInputField.setInputType(0)
}
}
Run Code Online (Sandbox Code Playgroud)
我试过上面的方法,它不起作用.如何实现我的需求?
我想阻止用户向包含编辑文本实例的警报对话框插入多于一定数量的字母.我尝试使用输入过滤器.长度过滤器,但仅显示最多为请求长度的字符串.用户仍然可以写更多字符,当我尝试删除字符时,没有任何反应,直到我删除足够多的字符使字短于限制(类似的键盘记住键).
编辑:更清楚的是,我已经尝试过使用InputFilter.这确实强制传递给EditText的字符串大小,但正如我所说,我仍然可以继续用键盘写字母,这些字母没有显示在文本框中.当我点击删除时,它首先删除多余的字母,并且只有在删除了足够的字母后,才开始看到文本框中的字母删除.我请求的场景:将字符串限制设置为10.在键盘上点击15个字符.然后点击退格键,看到文本框中的最后一个字母被删除.我希望现在更清楚了.
有人可以帮忙吗?
我有一个编辑文本和一个文本视图,我想在我的编辑文本中设置一个Max长度,它在我的文本视图中显示,每次用户输入一个字符时,它将减去字符数.例如,我将编辑文本的最大长度设置为150,如果用户输入150个字符,则他/她不能再输入.
如何解决这个问题?
最近,我将我的 android 项目迁移到了 AndroidX,并使用了 AndroidX 库中的 EditTextPreference。现在,我想将 EditTextPreference 的最大长度设置为 50。我尝试使用:
android:maxLength="50"
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
似乎所有 android 命名空间都不适用于 EditTextPreference 并且没有代码建议,所以我找不到任何相关代码来设置最大长度。如何设置最大长度?
我正在尝试使TextInputEditText适合整个屏幕,但并非没有问题:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:counterEnabled="true"
app:counterMaxLength="1000"
app:passwordToggleEnabled="false"
app:endIconMode="none">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_text"
android:hint="Type here..."
android:layout_width="match_parent"
android:layout_height="match_parent"
android:maxLength="1000"
android:gravity="top"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
输入类型:
TextInputEditText tv = findViewById( R.id.edit_text );
tv.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE );
Run Code Online (Sandbox Code Playgroud)
结果是计数器不见了,提示出现在中间。如果我更改为包装内容,它将恢复正常行为。例子:
所以基本上我会满足于只显示计数器,将提示对齐到顶部是次要的。
我想将 EditText 字段限制为 150 个字符,这很容易做到。但是,当用户尝试超过该限制时,我还需要通过键入(即第 151 个字符)或粘贴超过 150 个字符来提醒用户。
解决这个问题的最佳方法是什么?
I know that I can set the maximum length of an input text within an EditText by using
android:maxLength="10".
Run Code Online (Sandbox Code Playgroud)
But can I also set the maximum length so that once the entire EditText is filled with text, the user can't type in anything anymore?
Something like this:
|_________________________| <-- empty EditText
|texttexttexttext_________| <-- user can still type in text
|texttexttexttexttexttextt| <-- that's it, user can't type in stuff anymore
Run Code Online (Sandbox Code Playgroud)
How could I accomplish that?
EDIT: In other words: I don't …
我有一个小技巧,如何限制edit text在Android中的字符数... 例如,我想为名称字段设置一个限制,例如10个字符,因此它不允许用户输入超过10个字符.
另外,我在指定inputtypefor文本android:inputType="text|textPersonName"时遇到了另一个问题,我知道这个过程但它不起作用,因为它允许用户输入字符,数字和特殊字符.
我将非常感谢你的帮助.
提前致谢