最佳实践android:onClick XML属性还是setOnClickListener?

时间:2013-08-16 06:42:40

标签: android

我正在关注Google的Android教程,并发现有两种方法可以根据标题获取小部件回调(或者只有onClick - 我不知道)。

我是一名高级Java Swing开发人员,因此内部类方法让我有宾至如归的感觉:)但我明白xml方法更新 - 所以谷歌必须添加它是有原因的。

这里有什么推理?如果现在避免使用内部类方法(在支持它的版本上),在Android平台上这样做是否“更好”?

4 个答案:

答案 0 :(得分:20)

我没有使用XML onClick属性,因为这意味着膨胀XML的Activity必须实现onClick值方法。但是,如果您进行了一些重构并且更改了此方法,那么如果更改与XML无关,您将获得运行时异常。或者,如果您想使用某些includemerge

要添加更多内容:如果您使用片段,则必须delegate the click event到定义onClick XML属性的片段。

确实代码较少,但为了维护/重构这些代码,它会使事情变得困难并且容易出错。所以不要在生产代码中使用它。

答案 1 :(得分:0)

您可以通过xml和编程方式定义按钮等小部件。可以给两个方面添加听众的能力。所以一个人没有优势。

如果你想从xml做特定于布局的工作,那么android已经为你提供了这样做的能力。

但有人可能会按步骤定义布局,然后必须从代码中定义点击监听器。

但也有人混合使用它。

我希望你理解我的意思。

如果以编程方式执行此操作,您可以编写onClick()并编写一个switch case并根据视图ID来定义我个人觉得更容易使用的行为。

答案 2 :(得分:0)

如果按钮总是存在,并且总是会执行相同的操作,那么使用声明性事件处理程序是有意义的。就像你甚至不需要为那个按钮做findViewById()一样。

如果你想要启用/禁用点击或者可能是动态生成按钮等,那么在代码中动态设置事件处理程序是有道理的。

答案 3 :(得分:-1)

View.OnClickListener是一个接口,用于定义onClick(View)方法。

您将在代码中实现接口和方法。