Android下的Dialog

最新的项目需求中,应用到了Dialog。之前也是有用过,但当时没有用心记下来。这一次,来一个更全一些的信息记录,给自己一个交代。
先构建基本的显示方法:
    /**
     * 测试其他弹出框
     *
     * @param str
     */
    private void showDialog(String str) {
        new AlertDialog.Builder(MainActivity.this)
                .setMessage(str)
                .show();
    }
1.确定取消对话框
对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
    /**
     * 確定取消框
     */
    private void showEnsureOrNotDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.superman);
        builder.setTitle("確定取消框");
        builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "您點擊了確定按鈕", Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "您点击了取消按钮", Toast.LENGTH_SHORT).show();
            }
        });
        builder.create().show();
    }
2.多个按钮信息框
    /**
     * 多个选择信息框
     */
    private void showMultiChoice() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.drawable.iron_man);
        builder.setTitle("多个选择信息框--投票");
        builder.setMessage("你喜欢哪个动作明星?");
        builder.setPositiveButton("李连杰", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("你选择了--李连杰");
            }
        });
        builder.setNeutralButton("成龙", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("你选择了--成龙");
            }
        });
        builder.setNeutralButton("甄子丹", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("你选择了--甄子丹");
            }
        });
        builder.setNegativeButton("吴京", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("你选择了--吴京");
            }
        });
        builder.create().show();
    }
3,单选列表框
    /**
     * 展示单选列表框
     */
    private void showSingleChoice() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.drawable.panda);
        builder.setTitle("单项选择");
        builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                singleChoiceId = which;
                showDialog("您选择了第" + which + "项,内容是:" + mItems[which]);
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("确定");
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("取消");
            }
        });
        builder.create().show();
    }
4,列表框
/**
 * 列表展示,多项选择
 */
private void showMultiListChoice() {
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("列表框多选");
    builder.setItems(mItems, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            showDialog("你选择了第" + which + "项,你认为最重要的是:" + mItems[which]);
        }
    });
    builder.create().show();
}
5,进度展示
  /**
     * 进度条展示
     */
    private void showProgressDialog() {
        final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setIcon(R.drawable.panda1);
        progressDialog.setTitle("进度条展示窗口");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setMax(100);
        progressDialog.setButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("确定");
                progressDialog.dismiss();
            }
        });

        progressDialog.setButton2("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog("取消");
                progressDialog.dismiss();
            }
        });
        progressDialog.show();
        new Thread() {
            @Override
            public void run() {
                int progress = 0;
                while (progress < 100) {
                    try {
                        Thread.sleep(100);
                        progress++;
                        progressDialog.incrementProgressBy(5);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                super.run();
            }
        }.start();

    }
6,读取进度展示
    /**
     * 读取进度
     */
    private void readProgressProgress() {
        ProgressDialog  mProgressDialog = new ProgressDialog(this);
        mProgressDialog.setTitle("读取ing");
        mProgressDialog.setMessage("正在读取中请稍候");
        mProgressDialog.setIndeterminate(true);
        mProgressDialog.setCancelable(true);
        mProgressDialog.show();
    }
7,自定义布局框展示
    /**
     * 展示自定义布局
     */
    private void showSelfDefine() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        LayoutInflater factory = LayoutInflater.from(this);
        final View textEntryView = factory.inflate(R.layout.self_define_view, null);
        builder.setIcon(R.drawable.bired);
        builder.setTitle("自定义输入框");
        builder.setView(textEntryView);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {

                EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);
                EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);
                showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {

            }
        });
        builder.create().show();
    }
8,选项列表结果多个展示框
    /**
     * 展示列表选项多个展示框
     */
    private void showMultiResult() {
        final ArrayList<Integer> resultId = new ArrayList<>();
        final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        resultId.clear();
        builder.setIcon(R.drawable.master);
        builder.setTitle("多项选择");
        builder.setMultiChoiceItems(mItems, new boolean[]{false, false, false, false,false}, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                if (isChecked) {
                    resultId.add(which);
                    showDialog("你选择了第" + which + "个,内容是" + mItems[which]);
                } else {
                    resultId.remove(which);
                }
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String str = "";
                int size = resultId.size();
                for(int i=0;i<size;i++){
                    str+=mItems[resultId.get(i)]+"fenge";
                }
                showDialog(str);
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.create().show();
    }
公共的变量:
/**
 * 选择列表数据
 */
final String[] mItems = {"学习力", "记忆力", "身体", "强大心理素质", "创造力"};
/**
 * 默认被选中的ID
 */
int singleChoiceId = -1;

这算是一个循环往复,学习不断进化、优化~~



源码
理由是给弱者的安慰~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹叁零壹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值