Live character count for EditText

后端 未结 14 2193
清歌不尽
清歌不尽 2020-11-29 17:07

I was wondering what the best way to do a live character count of an edit-text box is in Android. I was looking at this but I couldn\'t seem to make any sense of it.

<
14条回答
  •  余生分开走
    2020-11-29 17:57

    try this

    private TextWatcher textWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) {
            editText.post(new Runnable() {
                @Override
                public void run() {
                    if (length < 100) {
                        if (count > 0 && after <= 0)/*remove emoij*/ {
                            length--;
                        } else if (count > after)/*remove text*/ {
                            length--;
                        } else if (count == 0 && after > 1)/*emoij*/ {
                            ++length;
                        } else if (count == 0 && after == 1)/*Text*/ {
                            ++length;
                        } else if (count > 0 && after > 1) {
                            ++length;
                        }
                        if (s.length() <= 0)
                            length = 0;
                        Log.w("MainActivity", " Length: " + length);
                    } else {
                        if (count > 0 && after <= 0)/*remove emoij*/ {
                            length--;
                        } else if (count > after)/*remove text*/ {
                            length--;
                        }
                        Log.w("MainActivity", " Length: " + length);
                    }
    
                    if (length == 100) {
                        editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(s.length())});
                    } else {
                        editText.setFilters(new InputFilter[]{});
                    }
                }
            });
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
        }
    };
    

    `

提交回复
热议问题