メソッド showDialog(int) を次のようにオーバーライドしました。
@Override
public Dialog onCreateDialog(int id ){
Log.d("Dialog",id+":created");
switch (id) {
case addressValidateProgressId:
addressValidateProgress = new AddressValidateProgress(this);
return addressValidateProgress;
case gpsSearchloadId:
gpsSearchload = new GPSSearchProgress(this,geocodeLocationToAddress);
return gpsSearchload;
case alertId:
prepareAddressChooseDialog(addressList);
return addressChooseDialog;
default:
return null;
}
}
これは正常に機能し、ダイアログが表示され、画面の向きが変わります。
問題は、dismissDialog(id) を呼び出すときに画面を回転させると、「java.lang.IllegalArgumentException: ID 0 のダイアログは Activity#showDialog 経由で表示されなかった」という例外が発生することです。
showDialog メソッドは、アクティビティをダイアログの所有者にするべきではありませんか?
何が間違っている可能性があるのか わかりません。
ありがとう。