【发布时间】:2019-10-22 11:08:23
【问题描述】:
我尝试从 LibGDX 类打开一个 Kotlin Activity,但我卡住了......
我已经阅读了How to start a Activity of Kotlin from Java android 并输入了类似示例的内容:startActivity(new Intent(context, myKotlinActivity.kt))
我的代码的目的是将用户从菜单重定向到 Kotlin Activity。
@Override
public void handleInput() {
if(Gdx.input.justTouched()) {
dispose();
startActivity(new Intent(context, MyActivity.kt))
}
}
我的错误是:Cannot resolve method startActivity(Intent)
我忘记了什么?
非常感谢,如果这是一个愚蠢的问题,我深表歉意......
【问题讨论】:
-
这不是你在 Kotlin 中打开活动的方式——你应该传递你的
MyActivity类的 Java 类而不是使用你的类的文件名:(在这种情况下它应该是MyActivity::class.java而不是MyActivity.kt) -
LibGDX 在您的项目中有单独的模块,用于“核心”代码和“安卓”代码。这样核心代码就可以在多个平台上使用,例如桌面 JVM 或 iOS。出于这个原因,核心代码不能调用任何特定于平台的东西,比如 Activity 类。您需要创建一个接口,您的
android模块可以使用代码实现以打开活动。 -
您是否要在打开另一个活动时关闭游戏?除非切换文字 LibGDX 屏幕,否则您不应该直接在屏幕上调用
dispose()。如果您只是打开另一个 Activity,libGDX Activity 将在任务堆栈上仍然存在。如果你想关闭游戏,你应该在它的宿主Activity上调用finish()(这也必须通过接口来完成,因为它是特定于平台的代码)。
标签: java android kotlin libgdx