是否可以在XML中设置事件侦听器?

时间:2012-05-16 15:30:41

标签: android xml layout event-listener

当我使用XML设计布局时,我在java代码中使用findViewById()来加载视图并将侦听器设置为它们。

这是正确的我在做什么?可能是用XML或其他东西设置监听器吗?

4 个答案:

答案 0 :(得分:3)

大多数人在代码中设置他们的听众。在代码中执行此操作有时会更容易,因为您经常需要根据某些操作或状态添加或删除侦听器。

但是,Android还为您提供了为XML中的任何OnClickListener设置View的选项。这是一个例子:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onActionClick"
    android:text="Action" />

使用onClick属性,指定将处理点击的方法的名称。此方法必须与Context存在于同一View中,因此位于同一Activity中。例如,我必须实现此方法:

public void onActionClick(View v) {

    // Do stuff for my "Action" button...
}

我认为必须有View参数,就像实施OnClickListener一样。我也相信它必须是公开的。

那么哪种方式是“最好的”?随你(由你决定。两条路线都可行。值得注意的是,这仅对点击侦听器有用,而不适用于其他类型的侦听器。

答案 1 :(得分:1)

您可以在xml中使用onClick属性。

答案 2 :(得分:1)

在XML中描述您的android:onClick时,您可以指定View属性。此属性的值是将在View的{​​{1}}事件中调用的方法的名称。然后,您应该在代码中将此方法定义为公开,然后您可以传递onClick对象,该对象将确定您在xml中使用相同View属性描述的那些View已触及来自用户的事件。

答案 3 :(得分:0)

你可以设置onClick,但我认为这是关于它的