gpt4 book ai didi

android - 防止在Android中的屏幕旋转对话框解除

转载 作者:IT老高 更新时间:2023-10-28 13:06:58 25 4
gpt4 key购买 nike

我正在尝试防止在 Activity 重新启动时关闭使用警报生成器构建的对话框。

如果我重载 onConfigurationChanged 方法,我可以成功执行此操作并将布局重置为正确的方向,但我失去了 edittext 的粘性文本功能。因此,在解决对话框问题时,我创建了这个 edittext 问题。

如果我保存编辑文本中的字符串并在 onCofiguration 更改中重新分配它们,它们似乎仍然默认为初始值,而不是旋转前输入的值。即使我强制无效似乎也会更新它们。

我真的需要解决对话框问题或编辑文本问题。

感谢您的帮助。

最佳答案

现在避免这个问题的最好方法是使用 DialogFragment .

创建一个扩展 DialogFragment 的新类.覆盖 onCreateDialog并返回您的旧 DialogAlertDialog .

然后你可以用 DialogFragment.show(fragmentManager, tag) 显示它.

这是一个带有 Listener 的示例:

public class MyDialogFragment extends DialogFragment {

public interface YesNoListener {
void onYes();

void onNo();
}

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (!(activity instanceof YesNoListener)) {
throw new ClassCastException(activity.toString() + " must implement YesNoListener");
}
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_my_title)
.setMessage(R.string.dialog_my_message)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
((YesNoListener) getActivity()).onYes();
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
((YesNoListener) getActivity()).onNo();
}
})
.create();
}
}

在你调用的 Activity 中:

new MyDialogFragment().show(getSupportFragmentManager(), "tag"); // or getFragmentManager() in API 11+

此答案有助于解释其他三个问题(及其答案):

关于android - 防止在Android中的屏幕旋转对话框解除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com