您好,我是 Android 开发的初学者。我了解基本的核心java。所以我对这个特定的代码有疑问:
button.setOnClickListener(new View.OnClickListener()
{
@Override public void onClick(View v)
{
// do something when the button is clicked
}
});
我知道这是一个匿名类,OnClickListener 是一个接口(interface)。但我不明白的是 onClick(View v) 方法,v 是被单击的按钮,但在幕后这个方法是如何自动执行的?我的意思是不是为了能够调用方法,您必须首先创建一个对象,然后在它旁边创建一个方法吗?我只需要理解这个概念,谢谢。
最佳答案
简单来说,当您创建 Button 对象时,它有一些监听器对象:
示例:
class Button extends View{
private OnClickListener clickListener;
public void setOnClickListener(OnClickListener clickListener){
this.clickListener = clickListener;
}
}
当你调用这个:
button.setOnClickListener();
基本上,您将值分配给 Button 类中的 clickListener,然后每次单击按钮时都会触发
clickListener.onClick(this)
并执行您定义的内容。
关于java - onClick(View v) 是如何自动执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54106075/