Java OnClickListener方法的Android视图参数

Java OnClickListener方法的Android视图参数,java,android,android-widget,onclicklistener,Java,Android,Android Widget,Onclicklistener,请不要介意这个愚蠢的问题,但我需要澄清我的困惑 对于安卓系统中按钮上的OnClickListener,我确实将其放入了main.xml <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:text="B

请不要介意这个愚蠢的问题,但我需要澄清我的困惑

对于安卓系统中按钮上的
OnClickListener
,我确实将其放入了
main.xml

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="Button"
    android:onClick="clicked"
/>
我的问题是,当我们调用
clicked
方法时,为什么需要传递
View

AFAIK

因为调用方法时没有在onCreate中获取按钮。为了访问该按钮,您需要有一个视图

i、 e 视图v代表您的按钮视图

若你们想访问这个按钮,假设你们想得到它上面的文本。如何使用
findViewbyId
在不获取按钮的情况下获取它? 你会得到这样的按钮

Button b=(Button)v;
获取文本

String text=b.getText();
因此,这里我们不是通过使用
findViewById


通常,如果要访问按钮,需要获取该对象。但在这里你可以从视图中看到。如果不使用
findViewById

,我想到的第一个原因是,可以将多个视图附加到同一个方法,使用v.getId()可以根据按下的视图进行操作


一般来说,将视图与事件相关可能会很有用,原因有几个,例如更改其某些属性。

确定视图是因为按钮扩展了它,为什么我们需要它的对象视图?@Sikander您可以为多个按钮使用一个方法。在这种情况下,您应该知道如何区分它们。每个小部件都可以定义自己的id,您可以使用View的方法
v.getId()
@Sajmon用这个
id
来区分它们,但在xml中,我编写了android:onClick=“clicked”,所以在clicked方法中,我只能处理这个按钮,对吗?@Sikander他的意思是说,您可以为多个按钮调用clicked方法。i、 e如果您的xml有四个按钮,那么您可以为所有四个按钮设置android:onClick=“clicked”,为了区分它们,您需要使用v.get()==R.id.button1等。@Sikander是的,您可以像Pragnani指出的那样为多个按钮分配相同的方法签名。
String text=b.getText();