微博輸入限制字數,編輯框右下角會有剩餘字數顯示,通過在項目中做了類似的編輯框,又看了一遍editview的監聽器。
先說基本原理,編輯框內容變化之後字數改變,具體的改變根據實際需要變化。
關於editview的監聽 通過使用addTextChangedListener(TextWatcher watcher)方法對EditText實現監聽。
TextWatcher watcher有三個抽象方法
調用順序:beforeTextChanged-->onTextChanged-->afterTextChanged
只要在afterTextChanged中設置字數的獲取,處理,顯示就行了
editIntroduceContent.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
int number = MAXWORDS - s.length();
editIntroduceShowText.setText(number+"");
if(number<0){
editIntroduceShowText.setTextColor(Color.RED);
}
}
});
MAXWORDS 最大字數限制
通過 onTextChanged事件監聽可以對用戶編輯狀態進行顯示
,例如微信對方正在輸入的狀態顯示
通過對例子的模仿才能快速掌握知識