Dialog对话框
对话框常见的六种:
一. 普通对话框
对于普通对话框来说第一步先要创建 (AlertDialog.Builder)对象参数类型context。
AlertDialog.Builder有很多小方法:setTitle(string); setIcon(int&string); setMessage(string);
外加两个点击,一个是setNegativeButton,另一个是setPositiveButton。
其中前者是为了后退,后者是为了进行下一步
而后:AlertDialog dialog = builder(AlertDialog.Builder对象).create();
dialog.setCanceledOnTouchOutside(false); dialog.show();
二. 进度条对话框
进度条对话框也是Dialog这次的对象是ProgressDialog参数一样。
小方法在一样,外加进度条中的方法
不要忘记 show();
我用的是线程: new Thread(){
@Override
public void run() {
super.run()
while (true){ try { sleep(1000); index=index+20; progressDialog.setProgress(index); if (index>=100){ //两种都是关闭 progressDialog.dismiss(); progressDialog.cancel(); } } catch (InterruptedException e) { e.printStackTrace(); } }
}
}.start();
下面两个比较简单,我就不细说,代码见
三.日期对话框
它要创建的对象是DatePickerDialog 这里有5个参数
Calendar calendar = Calendar.getInstance();
calendar.set(2020,5,10);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, DatePickerDialog.BUTTON_NEGATIVE,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(MainActivity.this, "年"+year+"月"+month+"日"+dayOfMonth, Toast.LENGTH_SHORT).show();
}
}, 2020, 5, 10);
datePickerDialog.show();
四。时间对话框
TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, "现在时间:"+hourOfDay+":"+minute+"", Toast.LENGTH_SHORT).show();
}
},17,48,true);
timePickerDialog.show();
五。列表,单选,多选对话框
一样是AlertDialog
单选是:setSingleChoiceItems();
列表是:setItems();
多选是:setMultiChoiceItems();
六。自定义对话框
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.custom_dialog,null);
//编写自定义对话框的布局,用setView进行设置
builder.setView(view);
TextView yes = view.findViewById(R.id.txt_yes);
final AlertDialog dialog = builder.create();
dialog.show();
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点了确定取消", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
相信大家应该可以看到,对话框都要有dismiss,在者就是AlertDialog(除了时间,日期,进度条)
它们之中有好多共同的方法。