我如何在 Kotlin 中编写这个 Java 箭头函数

How can I write this Java arrow function in Kotlin

我是 Kotlin 的新手,我必须为 Android Auto 开发一个应用程序。我只是编写了用于创建第一个 Hello World 屏幕的代码,但现在我想添加一个用于导航到另一个屏幕的按钮。问题是我在 Java 中做了这个,就像下面的代码一样,但我不知道如何在 Kontlin

中编写这个箭头函数 (setOnClickListener(() -> getScreenManager().push(new SecondScreen(getCarContext()))))

这是Java中的代码:

public Template onGetTemplate() {
        //Row row = new Row.Builder().setTitle("Hello world").addText("Example").build();
        MessageTemplate template = new MessageTemplate.Builder("Hello world!").setTitle("Hello")
                .addAction(
                        new Action.Builder()
                                .setTitle("Next screen")
                                .setOnClickListener(
                                        () -> getScreenManager().push(new SecondScreen(getCarContext())))
                                .build())
                .build();
        return template;
    }

我试过这个: 1)

MessageTemplate.Builder("Hello world!").setTitle("Hello")
            .addAction(
                Action.Builder()
                    .setTitle("Next screen")
                    .setOnClickListener(
                        () -> getScreenManager().push(SecondScreen(getCarContext()))).build()).build()

还有这个: 2)

MessageTemplate.Builder("Hello world!").setTitle("Hello")
            .addAction(
                Action.Builder()
                    .setTitle("Next screen")
                    .setOnClickListener(
                        {() -> getScreenManager().push(SecondScreen(getCarContext()))}).build()).build()

但我只收到了这些结果:

  1. 期待表达式

  2. 需要一个名称,类型不匹配:推断类型是 (Any?) -> Unit 但 () -> Unit 是预期的,预期没有参数

你试过吗?

val template: MessageTemplate = Builder("Hello world!").setTitle("Hello")
            .addAction(
                Builder()
                    .setTitle("Next screen")
                    .setOnClickListener { getScreenManager().push(SecondScreen(getCarContext())) }
                    .build()
            )
            .build()