gpt4 book ai didi

android - 覆盖 onCreateDialog() 时类型不兼容

转载 作者:行者123 更新时间:2023-11-30 03:43:48 25 4
gpt4 key购买 nike

我正在尝试使用 Scala 2.9.2 创建一个 Android 应用程序。到目前为止,我已准备好要编译的所有内容。

但是,当我在我的 Activity 中执行以下操作时遇到了问题:

override def onCreateDialog(id: Int) {

编译器提示类型不兼容,因为 Activity.onCreateDialog() 采用原始 int 而我传递的是 scala.Int

编译错误如下:

error: overriding method onCreateDialog in class Activity of type (x$1: Int)android.app.Dialog;
[INFO] method onCreateDialog has incompatible type
[INFO] override def onCreateDialog(id: Int) {
[INFO] ^
[ERROR] one error found

我认为这些会兼容。

谁能建议如何解决这个问题?

最佳答案

以下是针对 Scala 2.10 的,但我认为错误的原因与 Scala 2.9.x 完全相同。

顺便说一下,类型Activity 中的onCreateDialog(int) 方法已被弃用,但这不是重点。

现在,无论如何我都不是 Scala 专家,但根据我的观察,不返回任何内容的函数看起来确实像 def fun(arg) {},还有一些这样做:def fun(arg) = {}。注意 =。如果需要,您还可以拼出返回类型。

所以我试图覆盖你提到的方法,这是(简单的)实现:

override def onCreateDialog(id : Int) = {
super.onCreateDialog(id)
}

它编译和运行得很好。当你删除 = 时,你会得到你现在遇到的错误:

overriding method onCreateDialog in class Activity of type (x$1: Int)android.app.Dialog; method onCreateDialog has incompatible type

整个MainActivity:

class MainActivity extends Activity {
override def onCreate(savedInstanceState : Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main_activity)
}

override def onCreateDialog(id : Int) = {
super.onCreateDialog(id)
}
}

注意事项:我将 ADT 与 bundle 的 Eclipse (Juno) 一起使用,创建了一个默认的 Android 项目,包括 Scala-IDE(Scala 性质)和 AndroidProguardScala(AndroidProguardScala 性质)

关于android - 覆盖 onCreateDialog() 时类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com