Dialog的几种用法

来源:互联网 发布:c语言韩信点兵怎么理解 编辑:程序博客网 时间:2024/05/20 16:00

Diaglo是一种弹出来的对话框,究竟是什么样的对话框呢,不管,反正能弹出来就是了。


那么Dialog对话框究竟有哪些呢?


1.最常见的带确定,取消和中立的对话框


2.带列表的对话框


3.带多个单选或多选列表项和N个按钮的列表对话框(ps:貌似最多也就两三个按钮而已,多了也是很奇怪。当然特殊要求特殊处理 顺带,带列表的对话框和带单个单选列表的对话框感觉作用差不多


这几种对话框的创建几乎是一个模式

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);                builder.setTitle("multiple selection");                ...                builder.create().show();

具体效果就看中间部分怎么选择

1.确定。取消,中立对话框


                AlertDialog.Builder builder = new AlertDialog.Builder(mContext);                builder.setTitle("traditional dialog");                builder.setMessage("sure cancel or neutral");                builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Toast.makeText(mContext,"确定",Toast.LENGTH_SHORT).show();                    }                });                builder.setPositiveButton("取消", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                    }                });                builder.setNeutralButton("不管", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                    }                });                builder.create().show();

2.带列表的对话框


AlertDialog.Builder  builder = new AlertDialog.Builder(mContext);                builder.setIcon(R.mipmap.ic_launcher);                builder.setTitle("selecct the item you like");                builder.setItems(items, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Toast.makeText(mContext,items[which],Toast.LENGTH_SHORT).show();                    }                });                builder.create().show();

3,带单选列表的对话框

 AlertDialog.Builder builder = new AlertDialog.Builder(mContext);                builder.setTitle("single selection");                builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Toast.makeText(mContext,items[which],Toast.LENGTH_SHORT).show();                    }                });                builder.setPositiveButton("确定",null);                builder.create().show();

4.带多选列表的对话框

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);                builder.setTitle("multiple selection");                builder.setMultiChoiceItems(items, checked, new DialogInterface.OnMultiChoiceClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {                        Toast.makeText(mContext,items[which],Toast.LENGTH_SHORT).show();                        checked[which] = isChecked;                    }                });                builder.setPositiveButton("确定",null);                builder.create().show();

注意。后面三种情况下也就是凡是带列表的对话框都不能设置message 否则就会看不到item 效果会变成如下图所示效果




0 0
原创粉丝点击