以下代码无法编译。我明白,当做一个覆盖时, 替换类必须与原始类的签名完全匹配, 但我想我会仔细阅读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();
}
}
答案 0 :(得分:2)
您需要在交换机中使用默认返回块或在切换后返回。在这些情况下,您可以返回null。
答案 1 :(得分:0)
onCreateDialog()
方法需要Bundle作为参数,而不是int。您应该传入一个包含int id的Bundle,并从Bundle中检索该值以便在switch语句中使用。