Android(安卓)五种常用dialog的使用
16lz
2021-12-04
常规dialog
一般作为提示使用
xml文件
activity_main.xml
MainActivity.Java
/** *常规对话框的点击事件 * @param view */ public void bt1(View view) { new AlertDialog.Builder(this) //图标 .setIcon(R.drawable.ic_launcher_background) //标题 .setTitle("吃饭") //不可点击外部区域取消对话框 .setCancelable(false) //内容 .setMessage("你吃饭了吗") //第一个参数选项,第二个参数为该选项的点击事件 .setPositiveButton("吃了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "吃这么快", Toast.LENGTH_SHORT).show(); } }) //第一个参数选项,第二个参数为该选项的点击事件 .setNegativeButton("没吃", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "还不吃", Toast.LENGTH_SHORT).show(); } }) //展示 .show(); }
效果图
带选项列表的dialog
一个选择类的对话框
xml文件
activity_main.xml
MainActivity.Java
这个dialog为单选框,如需多选,setSingleChoiceItems方法替换为setMultiChoiceItems方法
/** *带选项列表对话框的点击事件 * @param view */ public void bt2(View view) { //定义一个字符串数组存放列表信息 String[]colors={"红","黄","蓝","绿","黑"}; new AlertDialog.Builder(this) //不可点击外部区域取消对话框 .setCancelable(false) //标题 .setTitle("选择一种颜色") .setPositiveButton("ok", null) //实现单选列表,第一个参数使用colors数据为选项,第二个参数为默认选中的位置(如不需要默认选中,则设为-1),第三个位置参数为该选项的点击事件 //如需多选则使用.setMultiChoiceItems() .setSingleChoiceItems(colors, 0, new DialogInterface.OnClickListener() { @Override //第一个参数为调用这个对话框的本身,第二个参数为位置 public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, colors[i], Toast.LENGTH_SHORT).show(); } }) .show(); }
效果图
自定义视图dialog
一个自己定义样式的dialog,这里我模拟了一个登录弹窗
需先在layout里创建一个xml文件,这里我命名为dialog_view
dialog_view.xml
<?xml version="1.0" encoding="utf-8"?>
xml文件
activity_main.xml
MainActivity.Java
/** * 自定义视图对话框 * @param view */ public void bt3(View view) { //使用inflate方法,从一个XML的资源文件当中获取一个视图 View v=View.inflate(this,R.layout.dialog_view,null); //获取dialog_view中的组件 final EditText eduser=v.findViewById(R.id.user); final EditText edpaw=v.findViewById(R.id.paw); new AlertDialog.Builder(this) //标题 .setTitle("用户登录") //不可点击外部区域取消对话框 .setCancelable(false) //设置视图 .setView(v) .setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { //按钮点击时,获取控件中的数据 String username=eduser.getText().toString().trim(); String pawd=edpaw.getText().toString().trim(); //通过Toast输出 Toast.makeText(MainActivity.this, "用户名:"+username+"密码:"+pawd, Toast.LENGTH_SHORT).show(); } }) .show(); }
效果图
带进度条的dialog
可用于加载等待
xml文件
activity_main.xml
MainActivity.Java
/** * 启动带进度条的对话框 * @param view */ public void bt4(View view) { //创建一个进度条对话框 ProgressDialog progressDialog=new ProgressDialog(this); //标题 progressDialog.setTitle("进度条对话框"); //设置当前进度 progressDialog.setProgress(30); //设置样式为水平状进度条 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //不可点击外部区域取消对话框 progressDialog.setCancelable(false); progressDialog.show(); new Thread(new Runnable() { @Override public void run() { //for循环使进度条不断累加推进 for (int i=1;i<20;i++){ try { //通过线程休眠是=使两次进度条修改时间之间间隔200毫秒 Thread.sleep(200); }catch (InterruptedException e){ e.printStackTrace(); } //获取当前的进度条加20轮,每轮前进5格 progressDialog.setProgress(progressDialog.getProgress()+5); } //完成后隐藏进度条 progressDialog.dismiss(); } }).start(); }
效果图
日期选择dialog
用于生日选择,时间选择等
xml文件
activity_main.xml
MainActivity.Java
/** * 日期选择对话框 * @param view */ public void bt5(View view) { //Calendar日历类获取年月日的三个字段 Calendar calendar=Calendar.getInstance(); int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH); int day=calendar.get(Calendar.DAY_OF_MONTH); //创建一个日期选择对话框,OnDateSetListener表示在日期选择当中会弹出一个onDateSet返回日期的年月日 new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override //onDateSet带回选中的年月日 public void onDateSet(DatePicker datePicker, int year, int month, int dayofminth) { Toast.makeText(MainActivity.this, "选中了"+year+"年"+month+"月"+dayofminth+"日", Toast.LENGTH_SHORT).show(); } //设置当前的年月日 },year,month,day).show(); }
效果图
结束
更多相关文章
- android bindingAdapter progressbar menu
- windows下android 开发环境建立
- [Android(安卓)界面] Android: 自定义DIALOG
- ProGuard用法
- Android中对话框(dialog)的使用
- android webview点击返回键回到上一个html
- Android(安卓)通过OKhttp3进行下载实现版本更新
- 三行代码去Android(安卓)USB ADB调试确认对话框
- ListView中item点击的时候颜色变化