重写时,android 4 onCreateDialog返回类型不兼容

时间:2013-08-13 20:20:02

标签: java android

以下代码无法编译。我明白,当做一个覆盖时, 替换类必须与原始类的签名完全匹配, 但我想我会仔细阅读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();
    }
}

2 个答案:

答案 0 :(得分:2)

您需要在交换机中使用默认返回块或在切换后返回。在这些情况下,您可以返回null。

答案 1 :(得分:0)

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