【问题标题】:Java and Android Studio listener syntax [closed]Java 和 Android Studio 侦听器语法 [关闭]
【发布时间】:2021-05-21 06:31:03
【问题描述】:
我正在学习 Java,同时将其结构与 Android Studio Java 代码进行比较,以便更加熟悉。在下面的代码中,
你能解释一下new View.OnclickListener(){...}的语法吗?
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickBack();
}
});
【问题讨论】:
标签:
java
methods
anonymous-class
【解决方案1】:
没有匿名类,相同代码的实现如下所示
class ClickListener extends View.OnClickListener{
@Override
public void onClick(View view){
clickBack();
}
}
button2.setOnClickListener(ClickListener());
在java中,你可以直接创建Interface的实例,称为匿名内部类,它会由编译器为你创建。所以实现变成了
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickBack();
}
});
如果使用Java8,这里是使用 lambdas 的更简洁的方式
button2.setOnClickListener(view -> clickBack());
【解决方案2】:
如果简单解释一下它是什么
我们将编写方法来了解单击按钮时会发生什么。
首先,我们需要在 java 类中识别我们的 xml 按钮 ID,并且需要使用方法查找。
然后我们就可以调用Button Seton点击监听了。