【发布时间】:2011-04-08 07:54:07
【问题描述】:
在我的活动中,我创建了一个带有微调器和编辑框的自己的对话框。我遇到的问题是方向改变 - 我每次都遇到异常,所以:
1) 我在清单中的活动部分添加了android:configChanges="orientation|keyboardHidden"。
2) 在我的 Activity 中实现了 onConfigurationChanged,看起来更像这样:
@Override
public void onConfigurationChange(Configuration newConfiguration) {
super.onConfigurationChange(newConfiguration);
if (mMyDialog != null && mMyDialog.isShowing() ) {
mMyDialog.dismiss();
}
大多数情况下它工作正常,但有时当我启动我的对话框时,激活 Spinner(启动 Spinners Pop-Up)并改变我得到的方向:
错误/AndroidRuntime(2928):在 android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:385) 错误/AndroidRuntime(2928):在 android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:230) 错误/AndroidRuntime(2928):在 android.view.Window$LocalWindowManager.removeView(Window.java:432) 错误/AndroidRuntime(2928):在 android.app.Dialog.dismissDialog(Dialog.java:290) 错误/AndroidRuntime(2928):在 android.app.Dialog.access$000(Dialog.java:78) 错误/AndroidRuntime(2928):在 android.app.Dialog$1.run(Dialog.java:123) 错误/AndroidRuntime(2928):在 android.app.Dialog.dismiss(Dialog.java:280)
所以看起来对话框没有按时解除?也许我应该重写 MyDialog 类中的 dismiss() 方法并确保所有控件都“关闭”? 我的对话框类创建如下:
mMyDialog = new MyDialog(this);
mMyDialog.show();
【问题讨论】: