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();