在Android中,我看到这样的代码:
public class Now extends Activity implements View.OnClickListener
这在java中合法吗?View到底是什么?OnClickListener表示在这里。
问题似乎是关于View.x
的使用。正如@Vicente_Plata在评论中说的那样:
OnClickListener是一个接口在View类中声明。就像一个"内部阶级",更确切地说,是一个"内部界面
旧的回答:
视图。OnclickListener是接口。它定义了您的活动必须实现的方法,在本例中是
OnClickListener()
。任何检查的人都想知道你的类中是否有这样的函数,所以他们可以使用Now
作为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正如其他人已经指出的那样,implements View.OnClickListener
指定您的类实现View.OnClickListener
接口中定义的方法。如果点表示法让您感到不舒服,您可以显式地导入接口:
import android.view.View.OnClickListener;
public class Now extends Activity implements OnClickListener
// ...