View.OnClickListener()是函数还是接口(interface)?当我们尝试在android中设置onclicklistener()方法时,我们使用了新的View.OnClickListener(),据我所知,它会在此处引起我的困扰,
所以有人可以告诉我我们为什么这样做:
感谢您的回复..
最佳答案
我不确定我是否了解您在编写有关静态方法的内容。 View.OnClickListener是一个接口(interface):http://developer.android.com/reference/android/view/View.OnClickListener.html
要在 View 上设置点击监听器,您需要传递一个实例,该实例实现OnClickListerner接口(interface):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);