请解释原因,下面的代码(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;
}
}
}
答案 0 :(得分:1)
为什么(this)在setonclicklistner中使用
因为您已为活动实施了View.OnClickListener
界面
View.OnClickListener
单击视图时要调用的回调的接口定义。
使用此 push_me.setOnClickListener(this);
,您已在视图中注册了点击监听器
答案 1 :(得分:0)
当我们不想使用匿名类时,我们使用win = new BrowserWindow({
width: 378,
height: 566,
show: true,
webPreferences: {
webSecurity: false,
plugins: true
}
});
// load PDF
win.loadURL('file://' + __dirname + '/header1_X_BTR.pdf');
// if pdf is loaded start printing
win.webContents.on('did-finish-load', () => {
win.webContents.print({silent: true, printBackground:true});
});
其他方式是使用匿名内部类
print({silent:true})
如果有多个按钮需要在onClick事件上执行相同的代码,那么您可以将侦听器定义为对象并将其传递给它们。