【问题标题】: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点击监听了。

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        • 1970-01-01
        • 2021-08-02
        • 2013-12-20
        • 2019-01-24
        • 1970-01-01
        相关资源
        最近更新 更多