这是代码
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//...
}
});
setOnClickListener
的样子:
public void setOnClickListener(android.view.View.OnClickListener l) { /* compiled code */ }
然而,new View.OnClickListener()
本身是什么?事实证明这是一个界面:
//View.class
public static interface OnClickListener {
void onClick(android.view.View view);
}
也就是说,这里btn.setOnClickListener(new View.OnClickListener() ....
我创建了一个接口实例。不,这不是实现此接口的类的实例。
如何创建接口实例?
答案 0 :(得分:4)
是的,确实如此。实现接口的是Anonymous class。之后的onclick是onclick的实现。
尝试这样做:
View.OnClickListener listener=new View.OnClickListener() {
public void onClick(View v) {
//...
}
};
btn.setOnClickListener(listener);
这可能看起来更清楚。