Android 为什么需要将View类型的对象传递给此方法? 公共void onclick按钮(视图){ TextView TextView=(TextView)findViewById(R.id.textView1); textview.setVisibility(View.VISIBLE); }

Android 为什么需要将View类型的对象传递给此方法? 公共void onclick按钮(视图){ TextView TextView=(TextView)findViewById(R.id.textView1); textview.setVisibility(View.VISIBLE); },android,Android,这是按下按钮时使文本显示在主活动界面中的代码。在“onClickButton”方法块中不使用视图对象时,传入视图对象有什么意义?我这样问是因为即使我没有在代码块中使用view对象,如果我省略了参数,应用程序也会崩溃。您的布局中可能有几个按钮,而活动代码中只有一个方法。在这种情况下,有必要区分不同的按钮 这就是可以使用的地方 <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall"

这是按下按钮时使文本显示在主活动界面中的代码。在“onClickButton”方法块中不使用视图对象时,传入视图对象有什么意义?我这样问是因为即使我没有在代码块中使用view对象,如果我省略了参数,应用程序也会崩溃。

您的布局中可能有几个按钮,而活动代码中只有一个方法。在这种情况下,有必要区分不同的按钮

这就是可以使用的地方

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentTop="true"
    android:text="@string/button1" 
    android:onClick="onClickButton"/>


public void onClickButton(View view){


    TextView textview = (TextView) findViewById(R.id.textView1);

    textview.setVisibility(View.VISIBLE);


}
公共void onclick按钮(视图){ if(view.getId()==R.id.buttonSave){ //做点什么 }else if(view.getId()==R.id.buttonCancel){ //做点别的 } } 但是,通过为每个视图类型使用一个方法,可以将不同的方法绑定到不同的视图

另一个用例可能是:

单击按钮后,您想要修改按钮本身,比如说,隐藏它,或者更改标签,那么您显然需要对按钮的引用

在“onClickButton”方法块中不使用view类型的对象视图时,传入该视图有什么意义

首先,我会告诉你的。其次,它可以在函数中使用。由于
按钮
s不是唯一可单击的
视图
,因此使用
视图
参数可以检查
视图
类型,以查看按下的内容并使用它执行其他操作

public void onClickButton(View view){ if(view.getId() == R.id.buttonSave){ // Do something } else if(view.getId() == R.id.buttonCancel){ // Do something else } }
如果您将视图直接传递给该方法,则该方法应该可以工作。

如果您只有一个用于多个按钮的onclick方法,则代码的混乱程度似乎会降低。谢谢。是的,但是,这是我提到的一个原因。比如说,在点击按钮后,你想修改按钮本身,比如说,隐藏它,或者更改标签,那么你显然需要一个按钮的引用。我理解。谢谢
public void onClickButton(View view){
  TextView textview = (TextView)view;
  textview.setVisibility(View.VISIBLE);
}