EditText 動態獲取輸入字數,限制長度

//問題最大字數
private int num = 30;

etQuestion.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();
        tvQuestionNumber.setText(number+"");
        selectionStart = etQuestion.getSelectionStart();
        selectionEnd = etQuestion.getSelectionEnd();
        //刪除多餘輸入的字(不會顯示出來)
        if (temp.length() > num) {
            s.delete(selectionStart - 1, selectionEnd);
            etQuestion.setText(s);
        }
        //設置光標在最後
        etQuestion.setSelection(s.length());
    }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章