2
我正在使用支持库来创建使用片段的对话框。FragmentDialog对活动的宽松引用
,我有下面的代码显示并关闭对话框:
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("Create", "Create");
setContentView(R.layout.activity_report);
init();
addListeners();
addhandlerListener();
super.onCreate(savedInstanceState);
}
private void showDialog(final Class<?> classs) {
if (classs.equals(AddressValidateProgress.class)) {
addressValidateProgress = AddressValidateProgress.newInstance();
addressValidateProgress.show(getSupportFragmentManager(), null);
Log.d("counter", "+1");
}
if (classs.equals(GPSSearchProgress.class)) {
showDialog(gpsSearchloadId);
}
}
private void dismissDialog(final Class<?> classs) {
if (classs.equals(AddressValidateProgress.class)) {
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ft.remove(addressValidateProgress).commitAllowingStateLoss();
addressValidateProgress = null;
Log.d("super", addressValidateProgressId + ":dismissed");
}
if (classs.equals(AddressChooseDialog.class)) {
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ft.remove(addressChooseDialog).commitAllowingStateLoss();
addressChooseDialog = null;
}
if (classs.equals(GPSSearchProgress.class)) {
dismissDialog(gpsSearchloadId);
Log.d("super", gpsSearchloadId + ":dismissed");
}
}
如果我开始在纵向模式下的应用程序,我可以使用该对话框通常情况下,我甚至可以旋转屏幕和对话框进行重构。
的问题是,如果我启动应用程序旋转屏幕,然后单击打开对话框中的按钮,我得到一个异常:发现
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
不要忘记标记您的答案为解决方案,谢谢。 – CSchulz 2012-07-14 22:51:40