这是一个创建于 4330 天前的主题,其中的信息可能已经有所发展或是发生改变。
问题是这样的。。。
假如界面上某个控件需要通过用户的不同状态来设置不同的Listener实现,那是应该在设置Listener的方法中判断用户状态,再设置不同的实现呢,还是应该先判断用户的状态,然后在不同的状态下设置不同的Listener?
举个简单的例子,比如有个界面,上面只有一个用于登陆的button,第一次打开App的时候,肯定是停留在这个界面,等用户点击button后跳转到登陆页,如果不是第一次打开,那需要判断用户之前有没有登陆过,如果登陆过,那需要把这个Button的click disable掉,然后直接拿存在本地的数据自动就去做登陆操作。这个流程可以先判断用户的登陆状态,然后根据不同的状态为该button设置不同的事件监听,也可以先设置事件监听,然后在OnClick的实现代码中检查用户是否登陆,根据不同的情况做不同的处理。
那么,我的问题是,对这两种实现方法,代码应该是都跑的通的,但不知道用哪种方法更好一点?各位如果有这种需求,一般会怎么做?为什么?
6 条回复 1970-01-01 08:00:00 +08:00  | | 1 manhere 2014 年 4 月 17 日 你启动的时候就应该判断用户是否登陆 |
 | | 2 judezhan 2014 年 4 月 17 日 @ manhere 我不是想讨论该在什么时候检查用户是否登陆,我只是想知道在遇到这种情况的时候,哪种写法比较好~ |
 | | 3 chyiz 2014 年 4 月 17 日 为什么会要在onClick事件里检查是否登录…… 这个登录页面是有专门的需求所以不管用户是不是已经登录了都要显示吗? |
 | | 4 ioNull 2014 年 4 月 17 日 via iPhone 一般把token什么的存在sharepreferences里面,有个SplashActivity判断token是否存在,不存在启动登录Activity,存在就跳到主页面 |
 | | 5 heyf 2014 年 4 月 17 日 via Android 当然是前者…参考onOptionsItemSelected和onKeyDown等等…因为是点击事件,完全不需要考虑switch的性能 |
 | | 6 twocity 2014 年 4 月 17 日 先判断状态,再实现。个人觉得这样写代码简洁一些。 |