View.OnClickListener()是函数还是接口?当我们尝试在
android中设置一个onclicklistener()方法时,我们使用新的View.OnClickListener(),据我所知,它会让我感到烦恼,因为
>我们不需要初始化包含静态方法的类的对象,以便使用这些方法.为什么我们这样做?
>当我们使用implements来实现接口时,我们不会调用接口的静态方法.
那么有人可以告诉我为什么这样做:
> new View.OnClickListener(),用于使用onclick()方法?
>如果是接口,我们为什么要使用View.OnClickListener?
感谢您的回复..
解决方法
我不确定我理解你在写静态方法的内容. View.OnClickListener是一个界面:
http://developer.android.com/reference/android/view/View.OnClickListener.html
要在视图上设置单击侦听器,请传递实现OnClickListerner接口的实例:http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener)
在android中执行此操作的最常见方法是定义一个实现OnClickListener的匿名内部类(http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html)
myView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Handle view click here } });
上面的代码都定义了一个匿名内部类并创建了它的实例.它相当于首先定义一个实现View.OnClickListener的类(如果在同一个类中定义)
class MyOnClickListener implements View.OnClickListener { @Override public void onClick(View v) { // Handle view click here } }
后来用这个
MyOnClickListener listener = new MyOnClickListener(); myView.setOnClickListener(listener);