废话不多说了,带来一个简单的EditText,满足一般的需求。
```c
editText.addTextChangedListener(new TextWatcher() {//记录输入的文字private CharSequence wordNum;private int selectionStart;private int selectionEnd;@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {//输入框输入之前监听}//输入框实时监听@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {//实时记录输入的文字wordNum = s;}//输入完成之后的监听@Overridepublic void afterTextChanged(Editable s) {//TextView显示剩余字数//这里的200 是你在XML文件里面设置的maxLengthtextViewXianZhi.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布局:
EditTextandroid: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" TextViewandroid: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的位置。