输入框点击按钮清除输入的所有字符的封装

508 阅读1分钟

清除输入框里的字符 如果是一排EditText,添加一个清除按钮很容易,但是如果一堆呢,addTextChangedListener则太烦了,毕竟里面有三个方法需要处理,所以就有了一次关于清除按钮的封装。


import android.content.Context;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class DelImgView extends ImageView
{
    public DelImgView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
    }

    public DelImgView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }

    public DelImgView(Context context)
    {
        super(context);
    }

    public void setOperEditText(final EditText et)
    {
        et.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)
            {
                if (TextUtils.isEmpty(s))
                {
                    setVisibility(View.GONE);
                }
                else
                {
                    setVisibility(VISIBLE);
                }
            }
        });
        setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                et.setText("");
            }
        });
    }
}

公开了一个setOperEditText(EditText)方法出来,当要使用的时候,则直接imageview.setOperEditText(EditText)来进行清空EditText的操作,是不是很简单~~~