gpt4 book ai didi

java - View.OnClickListener,方法还是类?

转载 作者:太空狗 更新时间:2023-10-29 23:03:20 27 4
gpt4 key购买 nike

如果这个问题很愚蠢,我很抱歉,但我无法理解 Java 语法..我学过 C/C++
我知道 View 是一个很好的类..但我不明白 View.OnClickListener() 是否是一种方法。
我怀疑它除非它返回一个对象?
我认为 View 是一个具有静态 OnClickListener 成员对象的类..同样这对我来说没有意义..
有人可以解释这行代码发生了什么吗?

button1 = (Button) findByView(R.id.button1)  ;
button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{

}
}

那么这段代码发生了什么?

Button1 是对 xml 文件中 button1 对象的引用。

button1 对象有一个成员对象 setOnClickListener 从它的名字我假设它初始化一个事件到按钮或其他东西。但它接收 View.OnClicListener() 对象。

我很困惑..onClick 接收到一个 View 对象,所以 onClickListener 不是一个返回 View 对象的对象?我完全不明白。

有人可以解释 View.onClickListener() 行中发生的事情吗?这是 new this 的另一种说法吗?

最佳答案

View.OnClickListener is an interface ,您不调用它,而是创建它的一个新实例(new View.OnClickListener() 是对构造函数的调用)

您创建的实例属于anonymous class implements View.OnClickListener,在 new View.OnClickListener()

正下方的括号中

任何实现 View.OnClickListener 的类都必须实现其中声明的方法(例如 onClick)

setOnClickListener 只是保存对您提供的 View.OnClickListener 实例的引用,当有人单击该按钮时,将调用您设置的监听器的 onClick 方法。

关于java - View.OnClickListener,方法还是类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6946971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com