抱歉,如果这个问题很愚蠢,但我无法理解Java语法.我学习了C/C++
我知道View是一个很好的类..但我不明白View.OnClickListener()是不是方法.
我怀疑它,除非它返回一个对象?
我认为View是一个具有静态OnClickListener成员对象的类,对我来说没有意义..
可以解释一下这行代码发生了什么吗?
button1 = (Button) findByView(R.id.button1) ;
button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
}
}
Run Code Online (Sandbox Code Playgroud)
那么这段代码发生了什么?
Button1 是对xml文件中button1对象的引用.
button1对象有一个成员对象setOnClickListener,我从它的名字我假设将事件初始化为按钮或其他东西.但它收到了View.OnClicListener()对象.
我很困惑.onClick收到一个View对象所以onClickListener不是一个对象返回一个View对象?? 我根本得不到它.
有人可以解释一下这行中发生的事情View.onClickListener()是另一种说法new this吗?
MBy*_*ByD 24
View.OnClickListener是一个接口,你不要调用它,但是创建它的一个新实例(new View.OnClickListener()是对构造函数的调用)
您创建的实例是匿名类是implements View.OnClickListener,在括号右下new View.OnClickListener()
任何View.OnClickListener实现的类都必须实现在其中声明的方法(例如onClick)
setOnClickListener只保存对您提供的View.OnClickListener实例的引用,当有人单击该按钮时,onClick您调用的侦听器的方法将被调用.