Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释一下关于Android开发的一小段java代码吗?_Java_Android_Class_Inheritance_Interface - Fatal编程技术网

有人能解释一下关于Android开发的一小段java代码吗?

有人能解释一下关于Android开发的一小段java代码吗?,java,android,class,inheritance,interface,Java,Android,Class,Inheritance,Interface,现在我感到困惑的主要原因是这个视图。OnClickListener{}。从API来看,我理解这是一个接口。然而,我以前从未见过以这种方式声明的接口 以下是我的问题: 1.View.OnClickListener接口是否正确?OnClickListener扩展视图? 2.为什么OnClickListener后面有括号?参数? 3.为什么括号后面有括号?是否覆盖视图中的初始onClick方法 很抱歉,我问了这么多关于小代码的问题,但是谢谢你的帮助 这些函数称为匿名函数 这个 与 这是一个匿名类。您可

现在我感到困惑的主要原因是这个视图。OnClickListener{}。从API来看,我理解这是一个接口。然而,我以前从未见过以这种方式声明的接口

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

很抱歉,我问了这么多关于小代码的问题,但是谢谢你的帮助

这些函数称为匿名函数

这个


这是一个匿名类。您可以阅读更多关于它的内容@或者在google上搜索java匿名类以获得更多的教程和解释。

基本上,在Android的View类中存在如下界面:

View.OnClickListener listner = new OnClickListener () {

                                 @Override
                                 public void onClick (View v) {

                                     // TODO Auto-generated method stub

                                 }
                             };
mButton.setOnClickListener(listner);  
这些接口充当开发人员稍后将定义的函数的占位符。在Android视图类中的某个地方,有一个为用户的指针触摸视图而编写的功能。在这段代码中,SDK调用onClickv方法,该方法充当稍后定义的代码的占位符。当开发人员通过添加新的OnClickListener来实现此方法时,实际上是将代码注入调用onClickv的视图类中的占位符中


至于@Override注释,我将向您指出这个答案,它很好。

这非常有用!非常感谢你!别忘了给有用的答案投票我没有足够的声誉去投票:
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);  
public interface OnClickListener{
    public void onClick(View v);
}