java - onClick(View v) 是如何自动执行的?

标签 java android

您好,我是 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/

相关文章:

android - 在应用程序中返回按钮

android - android-sdk\tools 中缺少 Emulator.exe

android - 多个 Android 开发者帐户

java - 没有 Override 时崩溃,onClick 事件中出现错误

java - Java 构造函数是否返回对象引用?

java - EasyMock:我应该关闭捕获的InputStream吗?

android - 是否可以从静态方法调用 startActivity() ?

android - CPU 使用率异常 - Okio Watchdog

java - 如何知道 Cassandra(CQL) 中受影响的行?

java - 使用 EV 代码签名创建 Maven JNLP