在android中实现关键字
在Android中我看到这样的代码:
public class Now extends Activity implements View.OnClickListener
这在java中是否合法? 究竟是什么View.OnClickListener在这里代表。
OnClickListener
是用于接收单击事件的接口。 您需要覆盖onClick()
方法并实现自己的代码来处理它。 http://developer.android.com/reference/android/view/View.OnClickListener.html
您可以在此处View
类结构: http : //developer.android.com/reference/android/view/View.html#nestedclasses
并在此处浏览实现: http : //grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/view/View.java
您可能想要阅读android开发指南(特别是处理UI事件的主题): http : //developer.android.com/guide/topics/ui/ui-events.html
以下两个是等效的:
import android.view.View; public class Now extends ActivityGroup implements OnClickListener { import android.view.*; public class Now extends ActivityGroup implements View.OnClickListener {
澄清后不需要以下内容
也许是Oracle的java界面教程:
http://download.oracle.com/javase/tutorial/java/concepts/interface.html
http://download.oracle.com/javase/tutorial/java/IandI/createinterface.html
问题似乎是关于View.x
的使用。 正如@Vicente_Plata很好地把它放在评论中:
OnClickListener是在View类中声明的接口。 就像一个“内部阶级”,而是一个“内部界面”
老答案:
View.OnclickListener是一个界面 。 它定义了您的活动必须实现的方法,在本例中为OnClickListener()
。 任何检查的人都想知道你的class级中是否有这样的function,所以他们可以使用Now
作为OnclickListener
。
接口不提供实现。
另外,从这个页面
实现接口允许类对其承诺提供的行为变得更加正式。 接口在类和外部世界之间形成契约,并且该合同在构建时由编译器强制执行。 如果您的类声称实现了一个接口,那么在该类成功编译之前,该接口定义的所有方法必须出现在其源代码中。
正如其他人已经指出的那样, implements View.OnClickListener
指定您的类实现View.OnClickListener
接口中定义的方法。 如果点符号让您感到不舒服,可以显式导入界面:
import android.view.View.OnClickListener; public class Now extends Activity implements OnClickListener // ...