/** * Created by LYQ on 2018/1/29. */public final class TextInputHelper implements TextWatcher {    private View mMainView;//操作按钮的View    private List mViewSet;//TextView集合,子类也可以(EditText、TextView、Button)    private boolean isAlpha;//是否设置透明度    public TextInputHelper(View view) {        this(view, true);    }    /**     * 构造函数     *     * @param view              跟随EditText或者TextView输入为空来判断启动或者禁用这个View     * @param alpha             是否需要设置透明度     */    public TextInputHelper(View view, boolean alpha) {        if (view == null) throw new IllegalArgumentException("The view is empty");        mMainView = view;        isAlpha = alpha;    }    /**     * 添加EditText或者TextView监听     *     * @param views     传入单个或者多个EditText或者TextView对象     */    public void addViews(TextView... views) {        if (views == null) return;        if (mViewSet == null) {            mViewSet = new ArrayList<>(views.length - 1);        }        for (TextView view : views) {            view.addTextChangedListener(this);            mViewSet.add(view);        }        afterTextChanged(null);    }    /**     * 移除EditText监听,避免内存泄露     */    public void removeViews() {        if (mViewSet == null) return;        for (TextView view : mViewSet) {            view.removeTextChangedListener(this);        }        mViewSet.clear();        mViewSet = null;    }    // TextWatcher    @Override    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}    @Override    public void onTextChanged(CharSequence s, int start, int before, int count) {}    @Override    public synchronized void afterTextChanged(Editable s) {        if (mViewSet == null) return;        for (TextView view : mViewSet) {            if ("".equals(view.getText().toString())) {                setEnabled(false);                return;            }        }        setEnabled(true);    }    /**     * 设置View的事件     *     * @param enabled               启用或者禁用View的事件     */    public void setEnabled(boolean enabled) {        if (enabled == mMainView.isEnabled()) return;        if (enabled) {            //启用View的事件            mMainView.setEnabled(true);            if (isAlpha) {                //设置不透明                mMainView.setAlpha(1f);            }        }else {            //禁用View的事件            mMainView.setEnabled(false);            if (isAlpha) {                //设置半透明                mMainView.setAlpha(0.5f);            }        }    }

 

使用时:

TextInputHelper helper =new TextInputHelper(mBt_secondactivity_show);helper.addViews(mEt_secondactivity_text1,mEt_secondactivity_text2,mEt_secondactivity_text3);

更多相关文章

  1. android处理Back键Home键和Menu键事件
  2. android 如何设置dialog的透明度
  3. Android 手机切屏事件
  4. Android中的双击事件,可扩展至多击事件
  5. Android触摸事件总结
  6. Android长按事件和点击事件问题处理,OnItemLongClickListener和On
  7. Android触摸事件分发机制(1)之View
  8. Android事件分发机制研究
  9. Android 4.0 事件输入(Event Input)系统

随机推荐

  1. android 获取服务器文件流 hander
  2. Android底部导航栏
  3. Android(安卓)Activity生命週期简介
  4. Android学习博客和文章存档
  5. Android:启动页有短暂白屏的解决方法
  6. 管道的私用,删除android的流氓
  7. android 修改videoview的宽度和高度
  8. Consider adding android:paddingStart=
  9. Android开发资料视频教程(光盘6.2G)
  10. android集成百度地图SDK 自定义keystore