java - Android Studio 事件监听器之谜(给我)(setOnClickEventListener)

标签 java android android-studio event-listener

我正在尝试学习 android 编程,但在深入理解概念方面,我陷入了困境。

所以有这段代码监听 View (一个按钮)的点击事件。顺便说一句,代码来自一个站点,并且工作正常。但我痴迷于了解它的具体细节。

clearButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // do some stuff
    }
});

我有一些不同层次的问题:

1. 据我所知,父函数 (clearButton.setOnClickListener) 是事件处理程序,它在单击按钮时触发。然而我们正在向它传递一个对象的方法,据我所知,这是另一个事件监听器。它们都被命名为“ClickListener”,所以我很困惑。其中两个真的是事件监听器吗?

2. View 对象(作为回调传递的对象)来自哪里?它是由系统隐式创建的吗?我的 MainActivity.java 文件中没有这样的定义。

3. 我笨拙地尝试用调用另一个简单函数的父函数来编写它,该函数只显示一个 AlertDialog,但我失败了,因为 clearButton.setOnClickEventListener 期望从回调返回一个 View (我认为:))。有没有其他方法可以完成它,或者这是将事件监听器设置为 View 的唯一方法?我是否必须按原样接受它并拥抱它,而不是为它苦苦挣扎:)我问这个只是为了理解结构的逻辑,代码工作得很好。

4. 传递给 View.OnClickListener 函数的 View 是什么?这是当前的观点吗(我怀疑是)?传递给 View 的 View 的用例是什么。

5. 我在哪里(或我可以)查看 View.OnClickListener 函数的代码以更好地理解它?

6. 所有这些练习在我脑海中引发了另一个关于回调的问题,但它可能完全是另一个问题的主题:)

最佳答案

  1. 这有点难以解释,但您正在传递可以视为函数的内容。
  2. > View包含在 Android 框架中。
  3. 您还可以通过 xml 设置 onClick 监听器。检查这个很有帮助post .
  4. 根据我的理解,这是它所关联的 View 。例如,它是 button1 的 onClickListener, View 引用 button1
  5. > View.OnClickListener
  6. ...好吧。我认为您最好先学习教程(我建议 udacity :D)

不是很确定,但我希望这能以某种方式给你一个想法。快乐学习和编码!干杯! :D

关于java - Android Studio 事件监听器之谜(给我)(setOnClickEventListener),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37066186/

相关文章:

java - 任务取消方法或事件

c# - SOAP 是简单对象访问协议(protocol)还是面向服务的应用程序平台?

java - 如何在jsoup解析中选择类

android java.lang.VerifyError on startactivity in 1.6

ANDROID:如何在用户可以按下以执行操作的所有内容之上的屏幕上创建一个虚拟区域?

java - Android - setVisibility 不改变 RelativeLayout 的可见性

java - 如何在 Spring 应用程序中从 Web 服务下载图像/pdf 文件

Android Studio 启动时 Gradle 错误

android - Android Studio 中的 list 合并

java - MySQL密码包含 '=' Spring Boot密码错误问题