我像这样覆盖了方法 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:没有通过Activity#showDialog 显示id 为0 的对话框”。
showDialog 方法不应该使活动成为对话框的所有者吗?
我看不出有什么可能是错的。
谢谢。