Dialog对话框及自定义 Dialog对话框

普通对话框

### 代码展示
 //设置普通对话框点击事件
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //创建对话框
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.drawable.ic_launcher_background);//图标
            builder.setTitle("我是标题");//标题
            builder.setMessage("我是提示信息");//提示的信息
            //设置是否成功或者取消
            builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Toast.makeText(MainActivity.this, "你点击了Ok", Toast.LENGTH_SHORT).show();
                }
            });
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Toast.makeText(MainActivity.this, "你点击的取消", Toast.LENGTH_SHORT).show();
                }
            });
            //创建页面
            AlertDialog alertDialog = builder.create();
            //显示
            alertDialog.show();
        }
    });

效果展示

在这里插入图片描述

注意事项

不能够有setMessage,也就是说不能设置提示信息,否则或出不来效果

单选对话框

代码展示

//单选对话框的点击事件
select_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//创建显示页面
builder.setIcon(R.drawable.ic_launcher_background);//图标
builder.setTitle(“我是标题”);//标题
// builder.setMessage(“提示信息”);//提示信息
builder.setPositiveButton(“ok”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, “你点击了ok”, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(“cancle”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, “你点击了cancle”, Toast.LENGTH_SHORT).show();
}
});
//设置提示的数组
final String[] str = new String[]{“java”,“php”,“c++”};
builder.setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, “”+str[i], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
//显示
alertDialog.show();
}
});

效果展示

在这里插入图片描述

注意事项

不能够有setMessage,也就是说不能设置提示信息,否则或出不来效果

多选对话框

代码展示

//设置多选对话框的点击事件
duo_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String[] items = {“小黄”,“小俊”,“小小”,“小李”};
final boolean[] flags = {false,false,true,false};
//创建对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//设置标题,图片的
builder.setIcon(R.drawable.ic_launcher_background);//图片
builder.setTitle(“这是标题”);//标题
builder.setPositiveButton(“ok”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
for (int j = 0; j < flags.length ; j++) {
if(flags[j]){
Toast.makeText(MainActivity.this, “是”+items[j], Toast.LENGTH_SHORT).show();
}
}
}
});

            builder.setNegativeButton("canale", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
                }
            });

            builder.setMultiChoiceItems(items, flags, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                   flags[i] = b;
                }
            });
            //创建页面
            AlertDialog alertDialog = builder.create();
            //显示
            alertDialog.show();
        }
    });

效果展示

在这里插入图片描述

注意事项

    两个数组,且数组的个数必须对象,是boolear[],小写的boolear,而不是大写的,如果是大写的会报错

自定义对话框

代码展示

//自定义布局的点击事件
zi_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher_background);//图片
builder.setTitle(“这是标题”);//标题

            View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.daiout_item, null);
            builder.setView(inflate);

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

        }
    });

效果展示

在这里插入图片描述

注意事项

首先,必须得设置一个用于展示的自定义的小布局,这个小布局就是你自己的所要展示的对话框效果

进度对话框

代码展示

//设置水平进度对话框点击事件
hor_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建进度条对话框
final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
//设置属性
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置样式 水平的
progressDialog.setMax(100);//最大的进度
progressDialog.setMessage(“正在下载”);//提示的语句
//页面显示
progressDialog.show();

            //用定时器去模拟
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                int count = 0;
                @Override
                public void run() {
                    count += 10;
                    progressDialog.setProgress(count);
                    if(count >= 100){
                        progressDialog.dismiss();//界面消失
                        timer.cancel();//取小任务
                    }
                }
            },0,1000);//0秒后执行,没个1秒执行一次
        }
    });

效果展示

在这里插入图片描述

注意事项

首先,水平进度对话框和圆形进度对话框本质上没有什么区别,只需要在设置它的样式setProgressStyle的时候设置水平或者圆形就可以了。
其次那个Timer的用法就是timer.schedule有三个参数,第一个参数是timerTask相当于你要执行的任务,第二个参数是多久开始执行,第三个参数是隔多久执行一次。

日期选择对话框

代码展示

//设置日期选择对话框的点击事件
day_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//获取日历的对象
Calendar calendar = getInstance();
new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
//吐司提示出选择的时间
Toast.makeText(MainActivity.this, “”+i+"-"+i1+"-"+i2, Toast.LENGTH_SHORT).show();
}
},calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
//后面的参数年月日是当前的时间
}
});

效果展示

在这里插入图片描述

注意事项

注意这里直接new的方法,然后在.show出来也能出效果。
第一个参数是这个页面MainActivity.this,而不是this,否则会报错

时间选择对话框

代码展示

//设置时间选择对话框的点击事件
time_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//获取对象
Calendar calendar = getInstance();
new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
Toast.makeText(MainActivity.this, “”+i+":"+i1, Toast.LENGTH_SHORT).show();
}
},calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),true).show();
}
});

效果展示

在这里插入图片描述

注意事项

注意这里直接new的方法,然后在.show出来也能出效果。
第一个参数是这个页面MainActivity.this,而不是this,否则会报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值