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         }

  

 

  旁白君:这样,就能基本实现想要的效果了…

posted @ 2013-10-12 18:58  星微尘  阅读(633)  评论(0编辑  收藏  举报