appl を Android 2.2 (API 8) から Android 2.1 (API7) にダウングレードしようとすると、ダイアログ ボックスでいくつかの問題に直面しています。このスレッドに基づいて、これらの例外をキャッチしようとしていますが、showDialog メソッドをオーバーライドできません。
this answer to a similar issueに従って Java コンパイラを 1.5 から 1.6 に変更しましたが、変更はありません。Eclipse は引き続き :
アクティビティからの最終メソッドをオーバーライドできません
public class MyActivity extends Activity implements
SeekBar.OnSeekBarChangeListener {
// ... some stuffs
@Override // here is the issue
public void showDialog(int dialogId) {
try {
super.showDialog(dialogId);
} catch (IllegalArgumentException e) {
Log.e(ACTIVITY_TAG, "Error dialog");
}
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_ALERT:
// Create out AlertDialog
Builder builder = new AlertDialog.Builder(this);
builder.setMessage(msg);
builder.setCancelable(false);
builder.setPositiveButton(GOTO_BOOK, new OkOnClickListener());
builder.setNegativeButton(STAY_HERE, new CancelOnClickListener());
AlertDialog dialog = builder.create();
dialog.show();
break;
case DIALOG_ONCREATE:
// Create out AlertDialog during the "onCreate" method (only "Ok"
// button)
Builder builder2 = new AlertDialog.Builder(getParent());
builder2.setMessage(msg);
builder2.setCancelable(false);
builder2.setPositiveButton(GO_BACK, new OkOnClickListener());
AlertDialog dialog2 = builder2.create();
dialog2.show();
break;
}
return super.onCreateDialog(id);
}
// ... some stuffs
}