stdying
V2EX  ›  Android

简单问题:在 Adapter 中,事件处理

  •  
  •   stdying · Apr 11, 2016 · 14886 views
    This topic created in 3866 days ago, the information mentioned may be changed or developed.
    如果在 Adapter 中,事件处理,是直接写匿名类
    还是写接口回调实现;

    如果有 3-4 个事件需要处理,会选择哪种方式处理
    14 replies  •  2016-04-13 19:43:50 +08:00
    pynix
    pynix
    Apr 12, 2016 via Android
    1
    多了建议接口。而且归类为一个包。
    pcatzj
    pcatzj
    Apr 12, 2016
    2
    Handler ?注意内存泄露? anyway
    twoyuan
    twoyuan
    Apr 12, 2016
    3
    写成适配器里匿名内部类最方便,但不可避免要和业务逻辑耦合。之前封装过一个通用适配器( https://github.com/twiceyuan/CommonAdapter ),就是把整个 ViewHolder 回调用来给外部调用者绑定事件
    wanttofly
    wanttofly
    Apr 12, 2016
    4
    不是歪楼哈。 Activity 里包含的 Fragment , Fragment 中的 ListView 的 Item 要做点击处理,更新 Activity 中的控件状态。我用的 EventBus 。我想说的是楼主说的 Adapter 里的事件用 EventBus 好像也挺方便的啊。
    stdying
    stdying
    OP
    Apr 12, 2016
    5
    @pynix 除了处理事件,还有状态的更改,接口多了归类也要好好想想
    @pcatzj 了解,谢谢
    @twoyuan 个人认为事件处理主要涉及业务处理和状态变化。先去看看你实现
    @wanttofly 这个我也在用,我还在想的一个问题是 EventBus 太多也不是很好,不好控制 EventBus 的数量。
    stdying
    stdying
    OP
    Apr 12, 2016
    6
    @pynix 目前我也倾向于使用接口
    wanttofly
    wanttofly
    Apr 12, 2016
    7
    @stdying 为什么要控制 EventBus 的数量啊?
    CtrlAltDeleteMe
    CtrlAltDeleteMe
    Apr 12, 2016
    8
    使用接口处理~
    stdying
    stdying
    OP
    Apr 12, 2016
    9
    @wanttofly 事件多了,不容易管理,而且发送一个事件,可在多个 activity 或 fragment 中接听
    wanttofly
    wanttofly
    Apr 13, 2016
    10
    @stdying 搜嘎。不过我是针对每一个事件创建对应的 Bean ,只会发送到指定的 Activity 或者 Fragment 中的。
    stdying
    stdying
    OP
    Apr 13, 2016
    11
    @wanttofly 搜迪斯奈,细说一下
    wanttofly
    wanttofly
    Apr 13, 2016
    12
    @stdying EventBus 里面是针对方法的参数类型来进行接收,然后处理的。那比如说我 ButtonA 要做评论处理,那我就建个 CommentEvent 的 Bean,然后 post 的时候使用这个 Bean ,在 Activity 活 Fragment 中写一个参数为 CommentEvent 的处理方法, ButtonB 要做提示处理,那我就建个 ToastEvent 的 Bean,然后 post 的时候使用这个 Bean ,在 Activity 活 Fragment 中写一个参数为 ToastEvent 的处理方法。额,我是这么干的
    CharmingCheung
    CharmingCheung
    Apr 13, 2016
    13
    Handler 这么多缺陷为什么还用?果断换 RxJava+RxBus
    stdying
    stdying
    OP
    Apr 13, 2016
    14
    @wanttofly 大概了解了
    @CharmingCheung 可以的,在用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1152 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    ♥ Do have faith in what you're doing.