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

スイッチにデフォルトの return ブロックまたは switch の後に return が必要です。そのような場合は null を返すことができます。

于 2013-08-13T20:22:35.673 に答える
0

このonCreateDialog()メソッドには、int ではなく Bundle が引数として必要です。int id を含む Bundle を渡し、Switch ステートメントで使用するために Bundle からその値を取得する必要があります。

于 2013-08-13T20:25:15.257 に答える