您好,欢迎来到要发发知识网。
搜索
您的当前位置:首页Android开发——官方推荐使用DialogFragment替换AlertDialog

Android开发——官方推荐使用DialogFragment替换AlertDialog

来源:要发发知识网

0.  前言

DialogFragment是在Android3.0(API level 11)中引入,代替了已经不建议使用的AlertDialog

为什么不再建议使用AlertDialog了呢?我们先得清楚DialogFragment存在的意义。本文原创,转载请注明出处为。

1DialogFragmentFragment基本一致的生命周期,因此当旋转屏幕和按下后退键时便于Activity更好的管理其生命周期

2)比如当屏幕旋转时,AlertDialog会消失,更不会保存如EditText上的文字,如果处理不当很可能引发异常,因为Activity销毁前不允许对话框未关闭。而DialogFragment对话框会随之自动调整对话框大小。DialogFragment的出现完美的解决了横竖屏幕切换Dialog消失的问题,同时也有恢复数据的功能。

 

1.  AlertDialog的使用

这种方式是我以前使用的,既然不建议使用,那就尽量少用吧。但是感觉比DialogFragment要简单一些。代码直接在Activity中就能完成。下面是一个让用户输入密码的对话框例子。

 private AlertDialog dialog;
    private void showEnterDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        View view = View.inflate(MainActivity.this, R.layout.fragment_login_dialog, null);
        ok = (Button) view.findViewById(R.id.ok);
        cancel = (Button) view.findViewById(R.id.cancel);
        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //取出密码并验证的逻辑略
                dialog.dismiss();
            }
        });
        dialog = builder.create();
        dialog.setView(view, 0, 0, 0, 0);
        dialog.show();
}

效果如下所示,看起来还不错,但是旋转屏幕后对话框就消失了。针对这个问题,还是建议使用DialogFragment来做对话框。

转载于:https://www.cnblogs.com/qitian1/p/61460.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- net188.cn 版权所有 湘ICP备2022005869号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务