牛骨文教育服务平台(让学习变的简单)
博文笔记

关于EditText的文本改变监听addTextChangedListener的问题

创建时间:2015-08-26 投稿人: 浏览次数:1772

今天做一个包含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即可。


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。