我不确定"更好"处理编辑文本的最大长度的方法。
最好显示一个显示文本字段中允许的最大字符数的计数器,但是让用户输入任何数量并在用户提交表单后显示错误
或者
显示最大字符允许的计数器并将其限制为该数量,因此如果用户超过该数量,它将停止输入更多字符?
我知道无论如何都是"罚款"我想知道从用户角度处理这种情况的最佳方法是什么。
答案 0 :(得分:2)
从用户的角度来看,如果弹出一个对话框并告诉我你输入的内容超出了长度限制,我会讨厌。这比第二个选项更不直观,在第二个选项中,您将用户限制为不超过指定长度的类型。
答案 1 :(得分:1)
一旦我们使用Android并且当前的UI / UX规范在https://material.io/guidelines/components/text-fields.html#text-fields-character-counter,并且要使用该功能,您需要设计支持库。使它工作的代码是:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:counterEnabled="true"
app:counterMaxLength="300">
<android.support.design.widget.TextInputEditText
android:id="@+id/comment_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/comment_hint"
android:lines="4"/>
</android.support.design.widget.TextInputLayout>
答案 2 :(得分:0)
我建议您显示具有Edittext最大限制的计数器。用户输入时,您应该告诉用户剩余的文字。一旦达到极限,您就会以负面方式显示计数器。
提交显示错误“文字超出限制。它将被省略”并提供继续和编辑选项。
您可以使用 TextWatcher 来显示限制
private TextView mTextView;
private EditText mEditText;
private int textLimit=60;
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 remaining text
if(s.length()>textLimit){
mTextView.setText("-"+(s.length() - textLimit));
} else {
mTextView.setText("-"+(textLimit - s.length()));
}
}
public void afterTextChanged(Editable s) {
}
};
mEditText.addTextChangedListener(mTextEditorWatcher);