八、Android UI对话框

八、Android UI对话框,第1张

概述8.1对话框①AletDialog:提示对话框:功能最为丰富,实际应用最为广泛的对话框。②ProgressDialog:进度对话框,是对简单进度条的封装。③DataPickerDialog:日期选择对话框。④TimePickerDialog:时间选择对话框。⑤自定义对话框:对话框布局自定义,并设置监听事件8.1.1Alert

8.1对话框
① AletDialog:提示对话框:功能最为丰富,实际应用最为广泛的对话框。
② ProgressDialog:进度对话框,是对简单进度条的封装。
③DatAPIckerDialog:日期选择对话框。
④TimePickerDialog:时间选择对话框。
⑤ 自定义对话框:对话框布局自定义,并设置监听事件
8.1.1 AlertDialog(警示对话框 )
AlertDialog生成的对话框分为4个区域:图标区、标题区、内容区和按钮区。
创建对话框的步骤:
使用AlertDialog.Builder创建对象
调用AlertDialog.Builder的setTitle(或setCustomTitle()方法设置标题。
调用AlertDialog.Builder的setIcon()方法设置图标
调用AlertDialog.Builder的相关设置方法设置对话框内容
调用AlertDialog.Builder的setPositivebutton、setNegativebutton()或setNeutralbutton0)方法添加多个按钮。
调用AlertDialog.Builder的create(方法创建AlertDialog对象,再调用AlertDialog对象的show)方。法将该对话框显示出来。

自定义对话框:

1.创建一个自定义样式文件
2.//获取布局文件 VIEw vIEw=getLayoutInflflater().inflflate(R.layout.test,null);
//设置的自定义样式布局文件;直接使用布局文件ID设置视图
builder.setVIEw(vIEw);
//获取自定义组件ID
button btn= vIEw.fifindVIEwByID(R.ID.login); btn.setText(“测试登录”);

dismiss() cancel() 功能效果一样;cancel回调setonCancelListener();

8.1.2 ProgressDialog (进度条对话框)
将进度条简单包裹起来,可以设置进度条的各种式样,启动线程,模拟耗时任务的进行,下载完成后,自动消失。
显示加载进度;以d出形式显示;结合Dialog 与 Progressbar;
API 26:不建议使用进度条对话框

//this表示该对话框是针对当前Activity的 ProgressDialog progressDialog = new ProgressDialog(DialogActivity.this); //设置最大值为100  progressDialog.setMax(100) // 设置可以被取消;back 其他位置  progressDialog.setCancelable(true);   // 点击外部返回  progressDialog.setCanceledOntouchOutsIDe(true);   //设置进度条 progressDialog.setProgress(100);    //设置进度条风格STYLE_HORIZONTAL progressDialog.setProgressstyle(ProgressDialog.STYLE_HORIZONTAL); //精确 水平 圆圈 progressDialog.setTitle("任务进度"); progressDialog.setMessage("耗时任务完成百分比"); progressDialog.setIndeterminate(false); //精确显示 progressDialog.show(); //放在show()之后,不然有些属性是没有效果的,比如height和wIDth Window dialogWindow = dialog.getwindow(); WindowManager m = getwindowManager(); display d = m.getDefaultdisplay(); // 获取屏幕宽、高用 WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的 参数值 // 设置高度和宽度  p.height = (int) (d.getHeight() * 0.4);  // 高度设置为屏幕的0.6  p.wIDth = (int) (d.getWIDth() * 0.6);  // 宽度设置为屏幕的0.65  p.gravity = Gravity.top;//设置位置  p.Alpha = 0.8f;//设置透明度 dialogWindow.setAttributes(p); //设置按钮  dialog.setbutton(DialogInterface.button_NEGATIVE, "取消任务", new DialogInterface.OnClickListener() {  @OverrIDe  public voID onClick(DialogInterface dialog, int which) { dialog.cancel();   }   });

8.1.3 DateDialog
用于显示日期设置:
构造方法初始化:month 0-11;比实际月份小1
DatePickerDialog.OnDateSetListener():事件处理
onDateSet(DatePicker vIEw, int year, int month, int dayOfMonth):获取用户选择日期
自定义样式参照:AlertDialog

//获取系统的当前日期:0-11 Calendar calendar=Calendar.getInstance(); int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH);;int day=calendar.get(Calendar.DAY_OF_MONTH);; System.out.println(month); //1.创建日期对话框: /*** @param context 上下文 * @param Listener 监听器  * @param year 初始化年月日 * @param month 值比实际值月小1  {@link Calendar#MONTH})  * @param dayOfMonth the initially selected day of month (1-31, depending      * on month)       */DatePickerDialog dialog=new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @OverrIDe//可以获取用户设置的日期 public voID onDateSet(DatePicker vIEw, int year, int month, int dayOfMonth) { String meg=year+"年"+(month+1)+"月"+dayOfMonth+"日"; Log.i("info=>",meg); } },year,month,day); dialog.show(); 

8.1.4 TimePickerDialog

//1.获取系统的当期时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR); int minute=calendar.get(Calendar.MINUTE);  //2.创建时间对话框  /** * @param context :在哪个页面活动  * @param Listener :事件处理  * @param hourOfDay :小时  * @param minute :分钟  * @param is24HourVIEw :是否24小时进制显示boolean  */ TimePickerDialog dialog=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_LONG).show();   } }, hour, minute, true);    //3.设置基本属性     //dialog.set     //4.显示     dialog.show(); 
总结

以上是内存溢出为你收集整理的八、Android UI对话框全部内容,希望文章能够帮你解决八、Android UI对话框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1044864.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存