对话框的八种形式

本文详细介绍八种常见对话框的设计与实现方法,包括普通、自定义、单选、多选、水平进度条、模糊进度条、日期及时间对话框,通过具体代码示例,帮助开发者理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    对话框的八种形式

1、普通对话框
2、自定义对话框
3、单选对话框
4、多选对话框
5、水平进度条对话框
6、模糊进度条对话框
7、日期对话框

//时间对话框
private void shijian() {
Calendar calendar = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, “您选择的时间是:” + hourOfDay + “小时” + minute + “分”, Toast.LENGTH_SHORT).show();
}
}, calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), true);
timePickerDialog.show();
}

//模糊水平进度条对话框
private void mohu() {
final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置水平进度条
progressDialog.setMax(100);
progressDialog.setMessage(“正在下载”);
progressDialog.show();

final Timer timer = new Timer();
timer.schedule(new TimerTask() {
    int pro = 0;
    @Override
    public void run() {
        if(pro==100){
            progressDialog.dismiss();
            timer.cancel();
        }
        progressDialog.setProgress(pro+=10);
    }
},0,1000);

}

//进度条对话框
private void shuiping() {
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 pro = 0;
    @Override
    public void run() {
        if(pro==100){
            progressDialog.dismiss();
            timer.cancel();
        }
        progressDialog.setProgress(pro+=10);
    }
},0,1000);

}

//单选按钮对话框
private void danxuan() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher_round);//设置图标
builder.setTitle(“请选择日期”);//设置标题
//设置确定取消按钮
builder.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, “您选择了确定!”, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(“取消”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, “您选择了取消!”, Toast.LENGTH_SHORT).show();
}
});
//创建单选对话框里的数据源
final String[] days = new String[]{“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”,“星期日”};
builder.setSingleChoiceItems(days, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, “您选择了:”+days[which], Toast.LENGTH_SHORT).show();
}
});
//创建并展示

builder.create().show();

}

//自定义对话框
AlertDialog alertDialog;
private void zidingyi() {
//inflate是自己自定义的一个布局
View inflate = View.inflate(MainActivity.this, R.layout.layout, null);
Button but_colse = inflate.findViewById(R.id.bt);
but_colse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setView(inflate);
//创建并展示
alertDialog = builder.create();
alertDialog.show();
}

//普通对话框
private void normal_dailog() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher_round);//设置图标
builder.setTitle(“这是一个普通的对话框”);//设置标题
builder.setMessage(“这是一个普通对话框的普通内容”);//设置对话框的内容
//设置确定取消按钮
builder.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, “您选择了确定!”, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(“取消”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, “您选择了取消!”, Toast.LENGTH_SHORT).show();
}
});
//创建并展示
builder.create().show();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值