0

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

<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 角度)更好,哪一个在未来更容易改变?

4

2 回答 2

1

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

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

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

于 2013-05-29T08:52:09.337 回答
0

这两种方式在后端没有区别。如果您使用android:onclick属性,则 javaonClickListener为您设置。

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

  1. 您不需要从代码中设置 TheOnclickLister。所以没有必要为此夸大视图。
  2. 如果视图的 id 改变,对代码没有影响。

但上述优势太小了。

于 2013-05-29T08:47:46.657 回答