5

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

对于 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"
/>

在java文件中我做了

  public void clicked(View v)
  {
   //  my code here 
  }

View view 我的问题是为什么我们在调用 clicked方法 时需要通过。

4

2 回答 2

10

AFAIK,

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

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

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

Button b=(Button)v;

获取文本

String text=b.getText();

所以在这里我们没有通过使用来获取按钮findViewById

通常,如果您想访问按钮,则需要获取该对象。但在这里你会从视图中得到它。不使用findViewById.

于 2013-03-31T19:42:34.633 回答
2

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

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

于 2013-03-31T19:44:07.657 回答