0

我像这样覆盖了方法 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 方法不应该使活动成为对话框的所有者吗?

我看不出有什么可能是错的。

谢谢。

4

0 回答 0