EditText实时监听输入多少个字

不废话,直接上代码,都是基础,基本能看的懂,直接复制粘贴即可使用;

界面布局:

            


                

                

            

oncreate代码;

  //显示输入字符数量
        showCharNumber(100);
        //判断etContent.gettext()是否为空
        if (TextUtils.isEmpty(binding.edCooperationIntroduce.getText().toString())) {
            binding.tvCooperationHin.setText("100");
        } else {
            int ed_lenght = binding.edCooperationIntroduce.getText().length();
            int lenght = 100 - ed_lenght;
            binding.tvCooperationHin.setText(String.valueOf(lenght));
        }


  private void showCharNumber(final int maxNumber) {
        binding.edCooperationIntroduce.addTextChangedListener(new TextWatcher() {
            private CharSequence temp;
            private int selectionStart;
            private int selectionEnd;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                temp = s;
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                int number = s.length();
                int lenght = 100 - number;
//                tv_size.setText(number + "/" + maxNumber);
                binding.tvCooperationHin.setText(String.valueOf(lenght));
                selectionStart = binding.edCooperationIntroduce.getSelectionStart();
                selectionEnd = binding.edCooperationIntroduce.getSelectionEnd();
                //System.out.println("start="+selectionStart+",end="+selectionEnd);
                if (temp.length() > maxNumber) {
                    s.delete(selectionStart - 1, selectionEnd);
                    int tempSelection = selectionStart;
                    binding.edCooperationIntroduce.setText(s);
                    binding.edCooperationIntroduce.setSelection(tempSelection);
                    toast("最多100字");
                }
            }
        });
    }

 

你可能感兴趣的:(EditText实时监听输入多少个字)