Android中EditText的字数统计

时间:2021-02-10 08:54:25

本文借鉴了该文,并进行简化与注释、突出重点,望大家指正。

public class WriteActivity extends Activity {

    private TextView wordAmount;
    private EditText contentEditText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_write);
        wordAmount = (TextView) findViewById(R.id.word_amount);
        contentEditText = (EditText) findViewById(R.id.content_edittext);
        contentEditText.addTextChangedListener(new TextWatcher() {//Adds a TextWatcher to the list of those whose methods are called whenever this TextView's text changes.

            private CharSequence temp;//A CharSequence is a readable sequence of char values. This interface provides uniform, read-only access to many different kinds of char sequences.

            @Override
            public void beforeTextChanged(CharSequence s/*之前的文字内容*/,  int start/*添加文字的位置(从0开始)*/, int count, int after/*添加的文字总数*/){

            }

            @Override
            public void onTextChanged(CharSequence s/*之后的文字内容 */, int start/*添加文字的位置(从0开始)*/, int before/*之前的文字总数*/, int count) {
                temp = s;
            }

            @Override
            public void afterTextChanged(Editable s/*之后的文字内容*/) {
                wordAmount.setText("" + temp.length());
            }
        });
    }
}