当活动重新开始时,对话被解雇

时间:2011-03-16 20:09:32

标签: android android-activity

当我在显示对话框时旋转设备时,我的活动将被重新创建,对话框将被取消。每次用户旋转设备时,是否需要再次显示对话框?

3 个答案:

答案 0 :(得分:3)

旋转设备时,您的活动会重新启动。您可以通过将其添加到清单中的应用程序部分来停止此操作:

android:configChanges="orientation|keyboardHidden"

答案 1 :(得分:3)

弗拉维奥,

您可以通过在AndroidManifest.xml中添加以下内容来阻止在方向更改时重新创建活动:

<activity android:configChanges="keyboardHidden|orientation" android:name="YourActivity"/>

然后您需要在代码中覆盖以下方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

答案 2 :(得分:0)

Flavio:我无法使用alertDialogs或自定义对话框重新定义问题行为。你在使用onCreateDialog和showDialog(int id)?根据文档“如果你使用showDialog,对话框将自动保存和恢复。这是我的经验。

甚至可以使用editText小部件创建XML布局,使布局膨胀,并且editText中的状态将在方向更改时自动保存。

AlertDialog.Builder builder= new AlertDialog.Builder(this);
LayoutInflater inflater= getLayoutInflater();
final View myView= inflater.inflate(R.layout.alert_dialog_text_entry, null);
builder.setTitle("About");
builder.setMessage(alertMessage+"Version: "+versionName);
builder.setView(myView);
AlertDialog alert= builder.create();

我的代码herehere带有屏幕截图,用于演示alertDialog和自定义对话框在方向更改方面的持久性