0

我对匿名类的后端工作有点困惑,比如我们有一个按钮并且我们正在设置 onclickListener

Button B = (Button)findViewById(R.id.myButton);
B.setOnClickListener(new onClickListener(){ 
          public void onClick(View V){ 
              Log.v("","Hello world");
          }
 ));

后端实际发生了什么?这会实现 View.OnClickListener 的接口还是其他东西???

4

3 回答 3

2

请看这个

匿名类如何使用“扩展”或“实现”?

http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm

于 2012-05-26T18:23:56.967 回答
2

是的,它是实现 OnClickListener 接口的新未命名类的实例。

于 2012-05-26T18:24:46.573 回答
1

匿名类必须始终扩展类或实现接口。

b.setOnClickListener(new OnClickListener() { 
    public void onClick(View V) { 
        Log.v("", "Hello world");
    }
});

View.OnClickListener在这种情况下,您正在创建一个实现接口的新匿名(未命名)类。这是有效的,因为该setOnClickListener方法采用 type 的参数View.OnClickListener

于 2012-05-26T18:29:40.067 回答