不同风格的android事件处理

时间:2013-05-29 08:43:53

标签: android oop model-view-controller

我发现在android的事件处理中有两种代码编写方式。一个是调用setOnClickListener之类的方法并在java中传递一个匿名类,另一个是添加一个名为 onClick 的xml属性,并在Activity中编写相应的方法,如下所示。

<Button  
android:id="@+id/idButtonTest1"
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/button_test1"
android:onClick="myClickButton1"/>

我想知道哪一个在oop透视图(或在mvc透视图中)更好,哪一个在将来更容易改变?

2 个答案:

答案 0 :(得分:1)

两者都是相同的唯一区别是片段。

如果您在xml中为视图设置侦听器,则方法必须处于托管此元素的活动中。

如果具有onClick侦听器的片段将在不同的活动中托管,并且您在xml中设置onClick则必须在所有活动中实现相同的方法。 在这种情况下,最好在片段类中实现onClickListener接口,并在onCreateView()方法中为代码中的可点击视图设置侦听器。

答案 1 :(得分:0)

这两种方式没有后端差异。如果您使用android:onclick属性,则java会为您设置onClickListener

但是对于维护,我认为android:onClick属性略好一些(个人意见)。例如

  1. 您无需从代码中设置TheOnclickLister。所以不需要为此提高视图。
  2. 如果更改了视图ID,则对代码没有影响。
  3. 但上述优势太小了。