为了账号安全,请及时绑定邮箱和手机立即绑定

防止在Android屏幕旋转时关闭对话框

防止在Android屏幕旋转时关闭对话框

不负相思意 2019-10-26 11:16:17
我试图防止在重新启动“活动”时关闭由“警报”构建器构建的对话框。如果我重载onConfigurationChanged方法,则可以成功完成此操作,并将布局重置为正确的方向,但是我失去了edittext的粘性文本功能。因此,在解决对话框问题时,我创建了这个edittext问题。如果我保存了来自edittext的字符串,并在onCofiguration更改中将它们重新分配,它们似乎仍默认为初始值,而不是旋转前输入的初始值。即使我强制失效,似乎也不会更新它们。我真的需要解决对话框问题或edittext问题。谢谢您的帮助。
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

// Prevent dialog dismiss when orientation changes

private static void doKeepDialog(Dialog dialog){

    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();

    lp.copyFrom(dialog.getWindow().getAttributes());

    lp.width = WindowManager.LayoutParams.WRAP_CONTENT;

    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;

    dialog.getWindow().setAttributes(lp);

}

public static void doLogout(final Context context){     

        final AlertDialog dialog = new AlertDialog.Builder(context)

        .setIcon(android.R.drawable.ic_dialog_alert)

        .setTitle(R.string.titlelogout)

        .setMessage(R.string.logoutconfirm)

        .setPositiveButton("Yes", new DialogInterface.OnClickListener()

        {

            @Override

            public void onClick(DialogInterface dialog, int which) {

                ...   

            }


        })

        .setNegativeButton("No", null)      

        .show();    


        doKeepDialog(dialog);

    }


查看完整回答
反对 回复 2019-10-26
?
aluckdog

TA贡献1847条经验 获得超7个赞

如果您要更改方向的布局,我不会放在android:configChanges="orientation"清单中,因为无论如何您都是在重新创建视图。


使用以下方法保存活动的当前状态(如输入的文本,显示的对话框,显示的数据等):


@Override

protected void onSaveInstanceState(Bundle outState) {

    super.onSaveInstanceState(outState);

}


@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

    super.onRestoreInstanceState(savedInstanceState);

}

这样,活动将再次通过onCreate进行,然后调用onRestoreInstanceState方法,您可以在其中再次设置EditText值。


如果要存储更复杂的对象,可以使用


@Override

public Object onRetainNonConfigurationInstance() {

}

在这里,您可以存储任何对象,在onCreate中,只需调用getLastNonConfigurationInstance();即可获取该对象。


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 870 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信