我在[本教程] [1]中找到了下面的代码段。我不明白究竟发生了什么。似乎按钮已创建,并且侦听器被设置为侦听点击时的状态,但为什么sendMail.setOnClickListener()
的(...)中的整个onClick(View view)
方法?请解释一下这个结构,以及它为什么会这样使用?
关于setOnClickListener
,Eclipse中说:
注册一个回调函数被调用点击此视图时。如果此视图不可点击,则可点击。
所以,我正确地说,结构是几乎同时看到按钮是否可点击,如果它不是可点击,并为按钮创建一个监听器,那么它是否可点击?
但我还是不明白为什么它被写和结构是这样的:
Button sendMail = (Button) findViewById(R.id.send_email);
sendMail.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Mail m = new Mail("[email protected]", "password");
m.setTo("[email protected]");
m.setFrom("[email protected]");
m.setSubject("This is an email sent using my Mail JavaMail wrapper from an Android device.");
m.setBody("Email body.");
try {
m.addAttachment("/sdcard/filelocation");
if(m.send()) {
Toast.makeText(m, "Email was sent successfully.", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Email was not sent.", Toast.LENGTH_LONG).show();
}
} catch(Exception e) {
Toast.makeText(getApplicationContext(), "There was a problem sending the email.", Toast.LENGTH_LONG).show();
Log.e("MailApp", "Could not send email", e);
}
}
});
在我看来应该是:
sendMail.setOnClickListener();
sendMail.onClick(this);
public void onClick(View view) {...}
任何意见或注册一个回调被调用当这个观点被点击时。如果此视图不可点击,则可点击。
该教程的链接似乎丢失。 –