java - onClick(View v) 是如何自动执行的?
问题描述
嗨,我是 Android 开发的初学者。我知道基本的核心java。所以我对这个特定的代码有一个问题:
button.setOnClickListener(new View.OnClickListener()
{
@Override public void onClick(View v)
{
// do something when the button is clicked
}
});
我知道这是匿名类,而 OnClickListener 是一个接口。但我不明白的是 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)
并执行您定义的内容。
推荐阅读
- android - 如何在 Android、Kivy、python3、youtube-dl 上使用 ffmpeg
- java - How to update an XML file that uses MAP in Java
- vue.js - 在 vue-router 解析器中使用 vuex 状态
- javascript - 如何计算字符串中的字谜?
- typescript - 共享数据库中租户隔离的简单实现
- python - 用户输入的数字总和
- r - 计算每组特定值的序列数
- javascript - 为什么 Jest 会在测试完成后将缩小的代码打印到控制台?
- r - 为什么我不能通过 ggplot2 添加图例?
- classification - 文件分类手写或电脑打印