0

我刚刚遇到了android:onClick="myCrazyMethod"XML 属性,看起来很干净和简单。

我只是想知道这种方法在性能上是否有任何差异——声明一个简单的方法和创建一个OnClickListener类?

4

3 回答 3

1

没有明显的区别。选择只是开发人员的偏好。

于 2012-12-21T23:16:29.370 回答
1

没有显着差异,因此您应该使用哪个清洁剂。android:onClick是使用运行时内省实现的,所以它在技术上更慢,但我们现在正在分裂头发=)

于 2012-12-21T23:22:17.917 回答
1

在 XML 中声明它会稍微慢一些,但不会慢很多。但是,在 xml 中定义 onClick 可能会导致 proguard 出现问题(除非您实现下面的代码)。就我个人而言,我觉得最简单的方法是在 onclicklistener 中使用 switch 和 case,但如果方法更长,那么最好给它自己的方法,以便“隐藏”它。但是,如果您需要在按下任何按钮后运行通用代码(例如 UI 刷新),最好将其留给 switch 和 case 或 if/else。不过,这一切当然是我对此事的看法。

// 只是为那些想在 xml 和 proguard 中使用 OnClick 的人添加

添加这个:

-keepclassmembers class * extends android.app.Activity { 
 public void *(android.view.View); 
} 
于 2012-12-21T23:23:57.283 回答