安卓开发-对话框的简单使用

《一:对话框创建的常规步骤》

1.创建builder对象
Builder builder = new Builder(this);
2.为builder设置组件(title,message,positiveButton,negativeButton,SingleChoiceItems,setMultiChoiceItems)


3.利用builder组件创建对话框对象
AlertDialog dialog = builder.create();
4.显示对话框
dialog.show();

《二:细节》

1.builder组件支持链式编程
2.MainActivity.this.finish():关闭应用
3.dialog.dismiss():关闭对话框
4.按钮监听器中重写的函数:onClick(DialogInterface arg0, int arg1):中int值    确定的是-1,否定的是-2
5.当组件设置了message之后,单选框和多选框就不能正常显示出来,两者不能共存。
6.progressDialog不支持链式编程

《三:常见三种对话框样式》


//1.确定,否定对话框
public void openDialogClick(View v){
    Builder builder = new Builder(this);

    builder.setTitle("提示").
    setMessage("残忍卸载吗?").
    setPositiveButton("是", new OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this, "确定了=" + arg1, Toast.LENGTH_SHORT).show();

        }
    }).
    setNegativeButton("否", new OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this, "不删除了=" + arg1, Toast.LENGTH_SHORT).show();
        }
    });

    AlertDialog dialog = builder.create();
    dialog.show();

}


//2.单选对话框
public void openSingleDialogClick(View v){
    final String[] items = {"张飞", "赵云"};

    Builder builder = new Builder(this);
    builder.setTitle("请选择人物").
    //默认选中items中第一个
    setSingleChoiceItems(items, 0, new OnClickListener() {
        //参数:对话框对象,items数组的索引
        public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this, "当先选中的是:" + items[arg1], Toast.LENGTH_SHORT).show();
        }
    }).setPositiveButton("确定", new OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this, "确定了=" + arg1, Toast.LENGTH_SHORT).show();
        }
    });

    AlertDialog dialog = builder.create();
    dialog.show();
}

//3.多选对话框
public void openMultiDialogClick(View v){
    final String[] items = {"今天", "明天", "后天"};
    final boolean[] checkedItems = {true, false, true};

    Builder builder = new Builder(this);
    builder.setTitle("请选择日期").
    setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
        //参数:对话框对象,当前items索引,当前索引是否被选中
        public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
            Toast.makeText(MainActivity.this, "当前选择日期为:" + items[arg1], Toast.LENGTH_SHORT).show();
            checkedItems[arg1] = arg2;
        }
    }).setPositiveButton("确定", new OnClickListener() {
        //打印所有被选中的日期
        public void onClick(DialogInterface arg0, int arg1) {
            String result = " ";
            for (int i = 0; i < items.length; i++) {
                if(checkedItems[i]){ 
                    result += items[i] + "  ";
                }
            }
            Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
        }
    }).setNegativeButton("取消", new OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this, "取消" + arg1, Toast.LENGTH_SHORT).show();
        }
    });

    AlertDialog dialog = builder.create();
    dialog.show();
}
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="openDialogClick"
        android:text="打开简单对话框" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="openSingleDialogClick"
        android:text="打开单选框" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="openMultiDialogClick"
        android:text="打开多选框" />

《四:进度条对话框(原地转圈的那种)》

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="openProgressDialogClick"
        android:text="进度条对话框" />



public void openProgressDialogClick(View v){
        final ProgressDialog dialog = new ProgressDialog(this);

        dialog.setTitle("提示");
        dialog.setMessage("请耐心等待");

        dialog.show();
        //设置定时器(五秒后自动退出对话框)
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                runOnUiThread(new Runnable() {
                    public void run() {
                        dialog.dismiss();
                    }
                });
            }
        }, 5000);

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值