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();
        }
    });

效果展示

Dialog对话框及自定义 Dialog对话框_第1张图片

注意事项

不能够有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();
}
});

效果展示

Dialog对话框及自定义 Dialog对话框_第2张图片

注意事项

不能够有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();
        }
    });

效果展示

Dialog对话框及自定义 Dialog对话框_第3张图片

注意事项

    两个数组,且数组的个数必须对象,是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();

        }
    });

效果展示

Dialog对话框及自定义 Dialog对话框_第4张图片

注意事项

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

进度对话框

代码展示

//设置水平进度对话框点击事件
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秒执行一次
        }
    });

效果展示

Dialog对话框及自定义 Dialog对话框_第5张图片

注意事项

首先,水平进度对话框和圆形进度对话框本质上没有什么区别,只需要在设置它的样式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();
//后面的参数年月日是当前的时间
}
});

效果展示

Dialog对话框及自定义 Dialog对话框_第6张图片

注意事项

注意这里直接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();
}
});

效果展示

Dialog对话框及自定义 Dialog对话框_第7张图片

注意事项

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

你可能感兴趣的:(Dialog对话框及自定义 Dialog对话框)