android原生加载对话框,Android-原生对话框

本文详细介绍了如何在Android应用中创建和使用各种类型的对话框,包括普通对话框、列表对话框和进度条对话框。通过示例代码展示了如何设置对话框的内容、按钮及监听事件,并提供了进度条的实时更新。此外,还涵盖了对话框的关闭监听和自定义功能。
摘要由CSDN通过智能技术生成

packageliudeli.ui.all;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.ProgressDialog;importandroid.content.DialogInterface;importandroid.os.Bundle;importandroid.os.SystemClock;importandroid.view.View;importandroid.widget.Toast;public class DialogActivity extendsActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_dialog);

}/*** 普通对话框

*@paramview*/

public voidcommonDialog(View view) {//AlertDialog.Builder 使用了构建器模式(相当于你把所有材料给工人,工人把制作好的房子给你)

AlertDialog.Builder builder =

new AlertDialog.Builder(DialogActivity.this); //注意:这里只能使用当前Activity的this,//不能使用:getApplicationContext(); getBaseContext(); 否则会有异常

builder.setCancelable(false); //设置点击Dialog其他区域不隐藏对话框,默认是true

builder.setTitle("警告");

builder.setMessage("你确定要清空所有资料吗 ?");//PositiveButton 右边的按钮

builder.setPositiveButton("确定", newDialogInterface.OnClickListener() {

@Overridepublic void onClick(DialogInterface dialog, intwhich) {

alertToast("点击了确定");

}

});//左边的按钮

builder.setNegativeButton("取消", newDialogInterface.OnClickListener() {

@Overridepublic void onClick(DialogInterface dialog, intwhich) {

alertToast("点击了取消");

}

});//最左边的按钮

builder.setNeutralButton("明天提醒我", newDialogInterface.OnClickListener() {

@Overridepublic void onClick(DialogInterface dialog, intwhich) {

alertToast("明天这个时候通知你");

}

});

AlertDialog alertDialog= builder.create(); //工人把制作好的房子给你

alertDialog.show();

}/*** 列表对话框(列表条目对话框,列表单选对话框,列表多选对话框)

*@paramview*/

public voidlistDialog(View view) {//AlertDialog.Builder 使用了构建器模式(相当于你把所有材料给工人,工人把制作好的房子给你)

final AlertDialog.Builder builder =

new AlertDialog.Builder(DialogActivity.this); //注意:这里只能使用当前Activity的this,//不能使用:getApplicationContext(); getBaseContext(); 否则会有异常

builder.setCancelable(false); //设置点击Dialog其他区域不隐藏对话框,默认是true

builder.setTitle("选择");/*** ⚠️注意:列表对话框,千万不能设置setMessage,否则列表数据不能显示*/

//builder.setMessage("请选择以下编程语言");

builder.setIcon(R.mipmap.ic_launcher);/*** 只要Dialog隐藏了就是调用这个监听*/builder.setOnDismissListener(newDialogInterface.OnDismissListener() {

@Overridepublic voidonDismiss(DialogInterface dialog) {

alertToast("Dismiss");

}

});/*** 可以设置适配器,可以当作ListView来使用*/

//builder.setAdapter();

String[] items= new String[]{"Java", "Android", "iOS"};/*** 设置列表数据 列表条目形式*/

/*builder.setItems(items, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

alertToast(which + "");

}

});*/

/*** 设置列表数据 列表多选形式*/

/*builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked) {

alertToast(which + "");

}

});*/

/*** 设置列表数据 列表单选形式*/builder.setSingleChoiceItems(items,0, newDialogInterface.OnClickListener() {

@Overridepublic void onClick(DialogInterface dialog, intwhich) {

alertToast(which+ "");

dialog.dismiss();

}

});//必须放在后面 最后才能制作好

AlertDialog alertDialog = builder.create(); //工人把制作好的房子给你

alertDialog.show();

}/*** 进度条对话框(默认是不确定进度条,可以设置样式为确定进度条)

*@paramview*/

public voidprogressDialog(View view) {final ProgressDialog progressDialog = new ProgressDialog(this); //注意:这里只能使用当前Activity的this,//不能使用:getApplicationContext(); getBaseContext(); 否则会有异常

progressDialog.setTitle("提示");

progressDialog.setTitle("正在加载中,可能要等待大半天");

progressDialog.setCancelable(true); //默认就是true//设置为 确定进度条 (默认是不确定进度条)

progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

progressDialog.setMax(100);newThread(){

@Overridepublic voidrun() {super.run();for(int i=0; i< progressDialog.getMax(); i++) {//使用Android提供的睡眠

SystemClock.sleep(300);

progressDialog.setProgress(i+ 1);

}

}

}.start();

progressDialog.show();

}private voidalertToast(String text) {

Toast.makeText(DialogActivity.this, text, Toast.LENGTH_LONG).show();

}

@Overrideprotected voidonDestroy() {super.onDestroy();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值