Android 设置事件监听器的问题

2014-04-16 22:48:38 +08:00
 judezhan
问题是这样的。。。

假如界面上某个控件需要通过用户的不同状态来设置不同的Listener实现,那是应该在设置Listener的方法中判断用户状态,再设置不同的实现呢,还是应该先判断用户的状态,然后在不同的状态下设置不同的Listener?

举个简单的例子,比如有个界面,上面只有一个用于登陆的button,第一次打开App的时候,肯定是停留在这个界面,等用户点击button后跳转到登陆页,如果不是第一次打开,那需要判断用户之前有没有登陆过,如果登陆过,那需要把这个Button的click disable掉,然后直接拿存在本地的数据自动就去做登陆操作。这个流程可以先判断用户的登陆状态,然后根据不同的状态为该button设置不同的事件监听,也可以先设置事件监听,然后在OnClick的实现代码中检查用户是否登陆,根据不同的情况做不同的处理。


那么,我的问题是,对这两种实现方法,代码应该是都跑的通的,但不知道用哪种方法更好一点?各位如果有这种需求,一般会怎么做?为什么?
3687 次点击
所在节点    程序员
6 条回复
manhere
2014-04-17 00:06:24 +08:00
你启动的时候就应该判断用户是否登陆
judezhan
2014-04-17 01:09:01 +08:00
@manhere 我不是想讨论该在什么时候检查用户是否登陆,我只是想知道在遇到这种情况的时候,哪种写法比较好~
chyiz
2014-04-17 03:00:23 +08:00
为什么会要在onClick事件里检查是否登录……
这个登录页面是有专门的需求所以不管用户是不是已经登录了都要显示吗?
ioNull
2014-04-17 04:39:02 +08:00
一般把token什么的存在sharepreferences里面,有个SplashActivity判断token是否存在,不存在启动登录Activity,存在就跳到主页面
heyf
2014-04-17 06:25:18 +08:00
当然是前者…参考onOptionsItemSelected和onKeyDown等等…因为是点击事件,完全不需要考虑switch的性能
twocity
2014-04-17 09:19:48 +08:00
先判断状态,再实现。个人觉得这样写代码简洁一些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/108884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX