最近有人问我这个问题,EditText三个编辑框输入,动态改变登陆按钮的颜色变化,话不多说,直接上代码,工作一年经验的都可以看懂:
@Override
protected void initView() {
WatchChange watch = new WatchChange();
reg_phone_edit.addTextChangedListener(watch);
reg_code_edit.addTextChangedListener(watch);
reg_code_phone_edit.addTextChangedListener(watch);
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 101:
reg_login_btn.setEnabled(true);
reg_login_btn.setBackgroundResource(R.mipmap.reg_regbtn_enable);
break;
case 102:
reg_login_btn.setEnabled(false);
reg_login_btn.setBackgroundResource(R.mipmap.reg_regbtn_disable);
break;
}
}
};
/**
* 自定义监听EditText
*/
class WatchChange implements TextWatcher{
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if(reg_phone_edit.length()>0&®_code_edit.length()>0&®_code_phone_edit.length()>0){
Message msg = new Message();
msg.what=101;
handler.sendMessage(msg);
}else {
Message msg = new Message();
msg.what=102;
handler.sendMessage(msg);
}
}
}