【问题标题】:May someone please explain a short piece of java code regarding Android development?有人可以解释一下关于Android开发的一小段java代码吗?
【发布时间】:2015-04-03 13:24:05
【问题描述】:
mButton.setOnClickListener(new View.OnClickListener(){  
    @Override  
    public void onClick(View v){  
        //Temp Empty  
    }  
});  

现在我造成混淆的主要原因是这个 View.OnClickListener(){}。从 API 中,我了解到这是一个接口。但是,我之前还没有真正看到过以这种方式声明的接口。

这是我的问题:
1.“View.OnClickListener”接口正确吗? OnClickListener 扩展视图?
2、为什么“OnClickListener”后面有括号?参数?
3.为什么括号后面有括号?覆盖视图中的初始 onClick 方法?

很抱歉,我问了这么多关于一小段代码的问题,但感谢您的帮助!

【问题讨论】:

  • 别忘了给有帮助的答案点赞
  • 我没有足够的声望来投票:(

标签: java android class inheritance interface


【解决方案1】:

基本上,在 View 类中(在 Android 中)存在这样的接口 OnClickListener:

public interface OnClickListener{
    public void onClick(View v);
}

这些接口充当您(开发人员)稍后将定义的功能的占位符。在 Android View class 中的某处,当用户的指针(手指)触摸 a 视图时,编写了一些功能。在此代码中,SDK 调用方法onClick(v),它充当稍后定义的代码的占位符。当您(开发人员)通过添加新的 OnClickListener 来实现此方法时,您实际上是将代码注入到调用 onClick(v) 的 View 类中的占位符中;

至于@Override 注释,我将向您指出explains 很好的答案。

【讨论】:

    【解决方案2】:

    这是一个匿名类。你可以阅读更多关于它@http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html 或在谷歌搜索 java 匿名类以获取更多教程和解释。

    【讨论】:

      【解决方案3】:

      这些被称为anonymous functions

      这个

      mButton.setOnClickListener(new View.OnClickListener(){  
          @Override  
          public void onClick(View v){  
              //Temp Empty  
          }  
      });  
      

      相同
      View.OnClickListener listner = new OnClickListener () {
      
                                       @Override
                                       public void onClick (View v) {
      
                                           // TODO Auto-generated method stub
      
                                       }
                                   };
      mButton.setOnClickListener(listner);  
      

      【讨论】:

      • 这很有帮助!非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      相关资源
      最近更新 更多