首页 > android开发的点击事件

android开发的点击事件

我们知道,例如,android 的一个 Button 时间,
其 onclick 方法有几种实现方法:

  1. 匿名内部类

  2. Activity实现接口

  3. XML中设置 android:onclick 属性

  4. 外部类实现接口

我想知道,现实的 android 开发是会选择哪一种方式?
当一个 页面上需要很多点击事件的时候,哪一种方式会比较高效呢?
小白飘过~~~


ButterKnife来做onclick事件的飘过...


比较常用的是内部匿名实现,如果Activity趋向复杂,代码较多,可以方便的迁移到外部类实现。如果是多个按钮,推荐采用一个OnClick对象通过switch(View.getId())的方法统一写在一起,这样减少实例化对象的数量,优化内存占用。另外,不推荐在XML中绑定OnClick,这样是增加耦合的行为,并且对代码混淆也有影响。


推荐使用:ButterKnife


能不显式实现接口就不要显式实现接口,而是写成匿名内部类的形式。

推荐在外部类中添加个回调函数实现逻辑,然后匿名内部类中调用(就是swing设计器所生成的那种格式)。

public class XXXActivity extends Activity {

    Button xxxButton;
    // ...
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
       // ...
       
       xxxButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) { xxxButtonOnClick(view); }
        });
    }
    
    private void xxxButtonOnClick(View view)
    {
        // ...
    }

}

之所以这样,是因为java8中加入了匿名函数代替匿名内部类用做闭包,这样写的话便于以后的升级。

xxxButton.setOnClickListener(v -> xxxButtonOnClick(v));

现在各种工具库也越来越多
等你慢慢往后学,你就知道你想用什么


我一般就实现了listener在activity 中重写点击事件...强答一波只为看看大家的看法


  1. 使用第三方的库

    Android依赖注入:Dagger、RoboGuice和ButterKnife
    
  2. XML的 onclick ,增加耦合,不可取。

  3. 匿名内部类: Activity 代码少可以用

  4. 当onclick很多时,建议转移到外部类去实现。

  5. 本类中实现 onclick 接口,代码少时可以用,减少麻烦。

【热门文章】
【热门文章】