<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);
}
这是在按下按钮时使文本出现在主活动界面中的代码。在“onClickButton”方法块中不使用它时,传递View对象有什么意义?我问这个是因为即使我没有在代码块中使用视图对象,如果我省略了参数,应用程序也会崩溃。
答案 0 :(得分:4)
您的布局中可能包含多个按钮,并且您的活动代码中只有一个方法。在这种情况下,有必要区分不同的按钮。
这就是可以使用的地方。
public void onClickButton(View view){ if(view.getId() == R.id.buttonSave){ // Do something } else if(view.getId() == R.id.buttonCancel){ // Do something else } }
虽然,您可以通过为每种视图类型提供一种方法,将不同的方法绑定到不同的视图。
另一个用例可能是:
点击按钮后,你想要修改按钮本身,比如隐藏它,或者更改标签,那么你显然需要对该按钮的引用。
答案 1 :(得分:1)
当您在“onClickButton”方法块中不使用它时,在View类型的对象视图中传递是什么意思?
首先,Button Docs告诉你。其次,它可以在函数中使用。由于Button
不是View
唯一的clickable
,因此使用View
参数可以检查View
类型以查看按下并执行其他操作。
答案 2 :(得分:0)
public void onClickButton(View view){
TextView textview = (TextView)view;
textview.setVisibility(View.VISIBLE);
}
如果您将视图直接传递给方法,这应该有效。