EditText 实时显示输入的字数与最大输入限制长度

  • Post author:
  • Post category:其他


废话不多说了,带来一个简单的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,用来显示输入字数/最大字数

效果预览,这里使用相对布局,底下那一层是输入框,上面那一层是TexrView,用来显示输入字数/最大字数,注:图上的右下角蓝色那里,是TextView的位置。



版权声明:本文为MrHaddis原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。