....
android:onClick = "activity1";
....
public void activity1(View view)
{
.....
}
为什么这个函数的参数类型为View
答案 0 :(得分:2)
您可以在任何View上设置onClickListener。这意味着该侦听器不知道您设置侦听器的元素类型。
由于您可以在extend View
上设置onClickListener的所有元素,因此它会为您提供视图,因为它确定您的元素是View
。
您自己可以检测单击了哪个元素,然后可以根据需要将其强制转换为特定元素。
答案 1 :(得分:1)
因为View是android所有小部件的基类。
例如TextView扩展了View,ImageView扩展了视图等等。
您可以编写View v = new TextView()
现在你可以使用View提供的基本功能,比如getItemID等。
答案 2 :(得分:0)
您可以在不同的视图上使用相同的onClick。因此,在这种情况下,视图将用于标识单击了哪个View。
例如
如果有3个按钮android:onClick = "activity"
你可以这样做
public void activity(View view)
{
switch(view.getItemId()){
case R.id.button1:
break;
case R.id.button2:
break;
case R.id.button3:
break;
}
}
现在,您可以在3个不同的按钮上使用相同的onClick。
答案 3 :(得分:0)
这样您就可以对多个不同的视图使用相同的方法。 请尝试以下代码
OnChanges
现在,您的活动方法<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
将显示为
onActivityClick
所以基本上你可以为多个小部件使用相同的方法,并在你的应用程序中保存方法和额外代码的数量。
希望这会有所帮助。