【问题标题】:Interface Vs anonymous class in androidandroid中的接口与匿名类
【发布时间】:2012-05-26 18:19:00
【问题描述】:

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

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

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

【问题讨论】:

标签: android


【解决方案1】:
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 这里有一个简单的错字可能会造成混淆。没有 onClickListener 接口。它是 OnClickListener。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多