關於EditText的文字改變監聽addTextChangedListener的問題
阿新 • • 發佈:2019-02-12
今天做一個包含EditText的Activity,在EditText的右邊有一個刪除按鈕,當輸入文字時,該刪除按鈕出現,當EditText中沒有文字時,該按鈕消失。
這個功能很簡單,只需要監聽EditText文字改變事件即可。但是我發現當輸入一些文字,然後再一個一個刪除輸入的文字時,在刪除最後一個文字時,該刪除按鈕並沒有出現,只有再一次點選輸入法的刪除按鈕時,該刪除按鈕才會顯示出來。
程式碼如下:
使用上述程式碼出現該問題,解決方法也很簡單,只需要更改if的條件為s.length() > 0即可。newName.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub if(!s.equal("")){ delete_btn.setVisibility(View.VISIBLE); }else { delete_btn.setVisibility(View.GONE); } } });