欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个TexitView的字数监听器

程序员文章站 2022-05-31 07:58:08
...

前言

          在很多类似发表状态、说说以及提交意见反馈的地方,都会设置一个字数限制,以防提交时出现什么约定性的错误。但是为了提高用户体验,很多应用就会在输入框的右下角附上一个小小的字数监听器。


效果展示(就类似下面这样的功能)


一个TexitView的字数监听器


实现方式

     就是一个简单为TextView加上监听的方法,在进界面  init()里面调用一下就好了。

  

    注:我标的红色的字体是你需要改动的实际代码,其他的都不需要改动,直接复制到代码里放着就行了

         

      help_feedback    //为输入框的控件对象
      tv_num           //输入框右下角字数实时监听展示的textView的控件对象
      200             //最大字数



    
   int num = 200;//限制的最大字数的声明

 

/** * edittext文字个数的显示 */ private void addTextChange() { help_feedback.addTextChangedListener(new TextWatcher() { private CharSequence temp; 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) { temp = s; } @Override public void afterTextChanged(Editable s) { int number = num - s.length(); tv_num.setText(number+"/200"); selectionStart = help_feedback.getSelectionStart(); selectionEnd = help_feedback.getSelectionEnd(); //System.out.println("start="+selectionStart+",end="+selectionEnd); if (temp.length() > num) { s.delete(selectionStart - 1, selectionEnd); int tempSelection = selectionStart; help_feedback.setText(s); help_feedback.setSelection(tempSelection);//设置光标在最后 } } }); }