2012-07-14 26 views
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 

回答

0

解决方案。

它是由一个静态处理程序声明的

+0

不要忘记标记您的答案为解决方案,谢谢。 – CSchulz 2012-07-14 22:51:40