0

下面的代码不会编译。我知道在进行覆盖时,替换类必须与原始类的签名完全匹配,但我认为我正在仔细遵循 Android 文档中的示例。

错误信息:

overrides android.app.Activity.onCreateDialog
The return type is incompatible with Activity.onCreateDialog(int)

onCreateDialog()方法:

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case 0:
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(R.drawable.ic_launcher)
            .setTitle("This is a dialog with a stupid message...")

            //more code here setting additional properties
            );
    return builder.create();
    }
}
4

2 回答 2

2

您需要在开关中设置默认返回块或在开关后返回。在这些情况下,您可以返回 null。

于 2013-08-13T20:22:35.673 回答
0

onCreateDialog()方法需要一个 Bundle 作为参数,而不是一个 int。您应该传入一个包含 int id 的 Bundle 并从 Bundle 中检索该值以用于 switch 语句。

于 2013-08-13T20:25:15.257 回答