1. 程式人生 > >關於EditText的文字改變監聽addTextChangedListener的問題

關於EditText的文字改變監聽addTextChangedListener的問題

今天做一個包含EditText的Activity,在EditText的右邊有一個刪除按鈕,當輸入文字時,該刪除按鈕出現,當EditText中沒有文字時,該按鈕消失。

這個功能很簡單,只需要監聽EditText文字改變事件即可。但是我發現當輸入一些文字,然後再一個一個刪除輸入的文字時,在刪除最後一個文字時,該刪除按鈕並沒有出現,只有再一次點選輸入法的刪除按鈕時,該刪除按鈕才會顯示出來。

程式碼如下:

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);
				}
			}
		});
使用上述程式碼出現該問題,解決方法也很簡單,只需要更改if的條件為s.length() > 0即可。