Day01对话框
普通对话框
代码展示
//设置普通对话框点击事件
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();
}
});
效果展示
单选对话框
代码展示
//单选对话框的点击事件
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();
}
});
效果展示
注意事项
跟日期选择对话框注意事项一样