【发布时间】:2018-04-04 08:45:24
【问题描述】:
请解释为什么在下面的代码中(this) 被用作setOnClickListener() 的参数?如果您能解释一下总代码,我将不胜感激。
public class MainActivity extends Appcomatactivity implements
View.OnClickListner {
Textview textview;
Button push_me, push_me2;
protected void onCreate(bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.Layout.activity_main);
textview = (Textview)findViewById(R.Id.Textview);
push_me=(Button)findViewById(R.Id.pushmebutton);
push_me2=(Button)findViewById(R.Id.pushmebutton2);
// Why does below code use (this) as argument?
push_me.setOnClickListener(this);
push_me2.setOnClickListener(this);
}
// <...some activity methods...>
// onclick method defined:
public void onClick(View view) {
switch(view.getid()) {
case R.Id.pushmebutton:
textview.setText("button 1 clicked");
break;
case R.id.pushmebutton2:
textview.setText("button 2 clicked");
break;
}
}
}
【问题讨论】:
-
通过实现
View.OnClickListener你是说MainActivity类可以对某些组件上的click事件作出反应。为此,您必须在视图中注册MainActivity实例,这是通过使用该方法将其设置为视图来完成的。