如何在editText框的右下角显示编辑文本字符限制?下面的例子
Posted
技术标签:
【中文标题】如何在editText框的右下角显示编辑文本字符限制?下面的例子【英文标题】:How show editText character limit in buttom right corner of editText box?? Example below 【发布时间】:2021-03-30 16:46:53 【问题描述】:上图显示了一个编辑文本,它的文本限制显示在右下角,最多 250 个字符。随着用户在 editText 中键入字符,“250”会减少。
我一直在尝试在我的编辑文本中实现这一点,但这有点具有挑战性。我尝试了各种东西。 只是为了让你知道我正在使用一个 alertDialog,它里面有 editText。然后 alertDialog 会显示一个 xml,其中包含 editText 属性。
感谢您的帮助!!!!
【问题讨论】:
【参考方案1】:使用 android 材料非常容易。我希望它的帮助:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textField"
android:layout_
android:layout_
app:counterEnabled="true" --this makes counter enable
app:counterMaxLength="20" -- this is the limittion
android:hint="@string/label">
<com.google.android.material.textfield.TextInputEditText
android:layout_
android:layout_
/>
</com.google.android.material.textfield.TextInputLayout>
或者如果你只想要一个 EditeText,你可以使用 TextWatcher:
private TextView mTextView;
private EditText mEditText;
mTextView.setText("250");
private final TextWatcher mTextEditorWatcher = new TextWatcher()
public void beforeTextChanged(CharSequence s, int start, int count, int after)
public void onTextChanged(CharSequence s, int start, int before, int count)
//This sets a textview to the current length
mTextView.setText(String.valueOf(250-s.length()));
public void afterTextChanged(Editable s)
;
mEditText.addTextChangedListener(mTextEditorWatcher);
【讨论】:
您好,感谢您的帮助。我已经尝试过您的解决方案,但它似乎不适用于仅 EditText。您是否有适用于我当前 XML 代码的代码。我已经用我当前的 XML 更新了这个问题。我曾尝试使用材料设计 editText,但我得到了我不想要的结果。谢谢 @EdwardJames 您可以将编辑文本放入 TextInputLayout。但我根据您的需要更新了我的答案 NVM,您的解决方案效果更好,感谢您的帮助!!!!【参考方案2】://xml
<EditText
android:id="@+id/et_comment"
style="@style/BusinessEditText"
android:layout_
android:layout_
android:layout_marginTop="@dimen/margin_10"
android:background="@drawable/bg_border_comment"
android:gravity="top"
android:hint="Type here - Include your Order ID if it is connected to your order."
android:maxLength="500"
android:textColor="@color/black"
android:textColorHint="@color/text_gray"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_count"
android:layout_
android:layout_
android:text="0/500"
android:layout_gravity="end" />
// inside java class
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
if (count == 0)
currentLine = currentLine - before;
else
currentLine = currentLine + count;
Log.d("new line ", currentLine + "");
dataBiding.tvCount.setText(currentLine+"/500");
@Override
public void afterTextChanged(Editable s)
【讨论】:
以上是关于如何在editText框的右下角显示编辑文本字符限制?下面的例子的主要内容,如果未能解决你的问题,请参考以下文章