在Android中创建接口本身的实例

时间:2013-07-11 15:51:38

标签: android

这是代码

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() ....我创建了一个接口实例。不,这不是实现此接口的类的实例。

如何创建接口实例?

1 个答案:

答案 0 :(得分:4)

是的,确实如此。实现接口的是Anonymous class。之后的onclick是onclick的实现。

尝试这样做:

View.OnClickListener listener=new View.OnClickListener() {
  public void onClick(View v) {
    //...
  }
};
btn.setOnClickListener(listener);

这可能看起来更清楚。