OnClickListener方法的Android视图参数

Sik*_*der 5 java android android-widget onclicklistener

请不要介意愚蠢的问题,但请我清除我的困惑..

对于 OnClickListener 在Android上的按钮我确实把它放入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"
/>
Run Code Online (Sandbox Code Playgroud)

在我做的java文件中

  public void clicked(View v)
  {
   //  my code here 
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是View view 我们调用clicked方法时 需要传递的原因.

Pra*_*ani 10

据我所知,

因为在没有获取onCreate中的Button的情况下调用方法.要访问该Button,您需要拥有一个视图.

即View v代表您的按钮视图.

如果要访问按钮,假设您要在其上获取文本.如何在不使用按钮的情况下获得它findViewbyId?你会得到这样的按钮

Button b=(Button)v;
Run Code Online (Sandbox Code Playgroud)

获取文本

String text=b.getText();
Run Code Online (Sandbox Code Playgroud)

所以这里我们没有使用按钮 findViewById

通常,如果要访问该按钮,则需要获取该对象.但是在这里你可以从视角中得到它.不使用findViewById.

  • @Sikander你可以有一个方法来获得更多的那个Button.在这种情况下,您应该知道如何区分它们.每个小部件都可以定义自己的id,你可以使用View的方法`v.getId()将它们与这个`id`区分开来. (3认同)
  • @Sikander他的意思是说你可以为一个以上的按钮调用clicked方法.即如果您的xml有四个按钮,那么您可以为所有四个按钮设置android:onClick ="clicked",并且为了区分它们,您需要使用v.get()== R.id.button1等. (2认同)