輸入框點選按鈕清除輸入的所有字元的封裝

dsxdsxdsx0發表於2018-03-29

清除輸入框裡的字元 如果是一排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的操作,是不是很簡單~~~

相關文章