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