当前位置: 代码迷 >> 综合 >> Dialog对话框和自定义对话框
  详细解决方案

Dialog对话框和自定义对话框

热度:80   发布时间:2024-01-28 09:02:13.0

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(除了时间,日期,进度条)

它们之中有好多共同的方法。


 

 

  相关解决方案