我如何在 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()
但我只收到了这些结果:
期待表达式
需要一个名称,类型不匹配:推断类型是 (Any?) -> Unit 但 () -> Unit 是预期的,预期没有参数
你试过吗?
val template: MessageTemplate = Builder("Hello world!").setTitle("Hello")
.addAction(
Builder()
.setTitle("Next screen")
.setOnClickListener { getScreenManager().push(SecondScreen(getCarContext())) }
.build()
)
.build()
我是 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()
但我只收到了这些结果:
期待表达式
需要一个名称,类型不匹配:推断类型是 (Any?) -> Unit 但 () -> Unit 是预期的,预期没有参数
你试过吗?
val template: MessageTemplate = Builder("Hello world!").setTitle("Hello")
.addAction(
Builder()
.setTitle("Next screen")
.setOnClickListener { getScreenManager().push(SecondScreen(getCarContext())) }
.build()
)
.build()