Daily_Log~~~监听多个EditText,只有当它们都有输入后,相应Button才能被点击
最近在做类似注册界面的时候,想做个RT的功能,以减少Button的判断量,网上东搞西搞,做了这么个东西出来。
功能很简单,有点原始的感觉…要是大家要是有好的方法,望告知。
>>>>心急的看官,请做直升机先走一步,Demo源码地址:http://download.csdn.net/detail/myownonepiece/6389831
废话不多说,效果图:
|
首先,要对 EditText 进行监听就需要 TextWatch() 这个类来实现。其中在这里最需要的就是该类的 onTextChanged 方法,来得到EditText的实时控制权。这时,我们就能通过判断该方法里的参数 CharSequence 的长度来进行判断。
然后,就是针对“几个”这个关键词,想了一个办法,就是new了一个类,专门用来对几个 EditText 的个数在 onTextChanged 方法中进行累加,只有条件合适了,才对按钮进行相应的操作。而且,每个 EditText 只能加一次,我这里想的办法是加2个boolean类型的数,进行控制,核心代码如下:
1 private boolean check = false, check_ = true; 2 3 @Override 4 public void onTextChanged(CharSequence s, int start, int before, int count) { 5 6 if (s.length() > 0) { 7 check = true; 8 } else if(s.length() == 0){ 9 check_ = true; //开门 10 check = false; 11 } 12 if(check){ 13 if(check_){ 14 EdtCheckEntity.checkNum++; 15 check_ = false; //关门 16 if(EdtCheckEntity.checkNum == 3){ 17 regist.setEnabled(true); 18 regist.setBackgroundResource(R.drawable.regist_t); 19 } 20 } 21 }else{ 22 EdtCheckEntity.checkNum--; 23 if(EdtCheckEntity.checkNum < 3){ 24 regist.setEnabled(false); 25 regist.setBackgroundResource(R.drawable.regist_f); 26 } 27 } 28 }
旁白君:这样,就能基本实现想要的效果了…