V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
judezhan
V2EX  ›  程序员

Android 设置事件监听器的问题

  •  
  •   judezhan ·
    judezhan · 2014-04-16 22:48:38 +08:00 · 3687 次点击
    这是一个创建于 3875 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问题是这样的。。。

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

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


    那么,我的问题是,对这两种实现方法,代码应该是都跑的通的,但不知道用哪种方法更好一点?各位如果有这种需求,一般会怎么做?为什么?
    6 条回复    1970-01-01 08:00:00 +08:00
    manhere
        1
    manhere  
       2014-04-17 00:06:24 +08:00
    你启动的时候就应该判断用户是否登陆
    judezhan
        2
    judezhan  
    OP
       2014-04-17 01:09:01 +08:00
    @manhere 我不是想讨论该在什么时候检查用户是否登陆,我只是想知道在遇到这种情况的时候,哪种写法比较好~
    chyiz
        3
    chyiz  
       2014-04-17 03:00:23 +08:00
    为什么会要在onClick事件里检查是否登录……
    这个登录页面是有专门的需求所以不管用户是不是已经登录了都要显示吗?
    ioNull
        4
    ioNull  
       2014-04-17 04:39:02 +08:00 via iPhone
    一般把token什么的存在sharepreferences里面,有个SplashActivity判断token是否存在,不存在启动登录Activity,存在就跳到主页面
    heyf
        5
    heyf  
       2014-04-17 06:25:18 +08:00 via Android
    当然是前者…参考onOptionsItemSelected和onKeyDown等等…因为是点击事件,完全不需要考虑switch的性能
    twocity
        6
    twocity  
       2014-04-17 09:19:48 +08:00
    先判断状态,再实现。个人觉得这样写代码简洁一些。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.