废话不多说了,带来一个简单的EditText,满足一般的需求。
```c
editText.addTextChangedListener(new TextWatcher() {
//记录输入的文字
private CharSequence wordNum;
private int selectionStart;
private int selectionEnd;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//输入框输入之前监听
}
//输入框实时监听
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//实时记录输入的文字
wordNum = s;
}
//输入完成之后的监听
@Override
public void afterTextChanged(Editable s) {
//TextView显示剩余字数
//这里的200 是你在XML文件里面设置的maxLength
textViewXianZhi.setText(s.length() + "/200");
selectionStart = editTextWenTi.getSelectionStart();
selectionEnd = editTextWenTi.getSelectionEnd();
if (wordNum.length() > num) {
//删除多余输入的字(不会显示出来)
s.delete(selectionStart - 1, selectionEnd);
int tempSelection = selectionEnd;
editTextWenTi.setText(s);
//设置光标在最后
editTextWenTi.setSelection(tempSelection);
}
}
});
最后就能有一个右下角显示 当前输入字数/最大限制字数的 EditText了
附XML布局:
EditText
android:id="@+id/et_opinion_wenti"
android:layout_width="660px"
android:layout_height="320px"
android:layout_centerInParent="true"
android:background="@null"
android:gravity="start"
android:hint="@string/string_editor_detail_hint"
android:maxLength="200"
android:minLines="10"
android:paddingLeft="20px"
android:paddingTop="20px"
android:textColor="#333333"
android:textColorHint="#b3b3b3"
android:textSize="28px"
TextView
android:id="@+id/tv_opinion_textnum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="20px"
android:layout_marginRight="30px"
android:textColor="#b3b3b3"
android:textSize="24px"
效果预览,这里使用相对布局,底下那一层是输入框,上面那一层是TexrView,用来显示输入字数/最大字数,注:图上的右下角蓝色那里,是TextView的位置。
版权声明:本文为MrHaddis原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。