安卓 ui对话框(第八节课)

第八课

对话框
●AletDialog; 功能最为丰富,实际应用最为广泛的对话框。
●ProgressDialog: 进度对话框,是对简单进度条的封装。
●DataPickerDialog: 日期选择对话框。
●TimePickerDialog; 时间选择对话框。
●自定义对话框:对话框布局自定义,并设置监听事件
AlertDialog
●AlertDialog生成的对话框分为4个区域。:图标区、标题区、内容区和按钮区。
●创建对话框的步骤:
●使用AlertDialog. Bui lder创建对象
●调用AlertDialog. Bui lder的setTitle(或setCustonTitle()方法设置标题。数据删除
●调用AlertDialog. Bui lder的setIconO方法设置图标
你确定删除数据吗?
●调用AlertDialog. Builder的相关设置方法设置对话框内容
●调用AlertDialog. Bui lder的setPositiveButton. setNegativeButton )或setNeutralButton()方法添加多个按钮。
●调用AlertDialod, Bui lder的create(方法创建AlertDialog对象,再调用AlertDialog对象的show(方法将该对话框显示出来。
测试
1.测试AlertDialog
2.测试ProgressDialog
3.测试DatePickDialog
TimePickDialog
ProgressDialog
●将进度条简单包裹起来,可以设置进度条的各种式样
●启动线程,模拟耗时任务的进行,下载完成后,自动消失

●//this表示该对话框是针对当前Activity的
ProgressDialog progressDialog = new ProgressDialog (DialogActivity. this);
●//设置最大值为100
*progressDialog. setMax (100)//设置可以被取消
*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. getindow() ;
WindowManager n = getWindowManager(:
Display d = B getDefaultDisplayO: /1获取屏幕宽、高用
WindosManager. LayoutParams p = dialogWindow. getAttributesO: //获取对话框当前的参数值
//设置高度和宽度
D. height = (int) (d. getHeightO * 0.4); //高度设置为屏称的0.6
p.width = (int) (d. getWidth() * 0.6): //宽度设置为屏幕的0.65
D. gravity = Gravity. TOP://设置位置
D.alpha = 0. 8f://设置透明度
dialogWindow, setAttributes§;

//this表示谈对话瓶是针对5前Activity的
ProgressDialog progressDialog = new ProgressDialog(Dialogactivity.this);
//设置最大值为100
progressDialog.sethax(100);
//设置可以技取消。back 其他位置
progressDialog.setCance1ab1e(true);
progressDialog.setCanceledonTouchoutside(true); //点击外部返回
progressDialog.setProgress(100); //设营进度条
//设置边度第风格STYLE HORIZONTAL
progressDialog.setprogressstylerogressDia1og.STYLE. HCRIZONTAL); //精准 水平 圆
progressDialog.setTitle(“任务进度”);
progressDialog.setNessage("耗时任务完成百分比”);
progressDialog.setIndeterminate(false); //精确显示
progressDialog.showO);
//放在show(之后。不然有些属性是没有效果的,比theight Foridth
window dialogrindow=dia1og.getwindon();
windowlanager m=getwrindonManagerO;
Display d=n.getDefaultDisplayO; 获取屏幕宽、高windowlanager .LayoutParans p . dialogrindow. getAttributesO; //获取对话框当前的参数值
//改置高度和定度
p.height=(int) (d.getHeightO *0.4); //高度设置为屏幕的0.6
p.ndth = (int) (d.getiridth() *0.6); //宽度设置为屏幕的0.65
p.gravity=Gravity.TOP://设置位置
p.alpha=0.8f://设置透明度
dalogirindow.setAttributes(o);|

ProgressDialog
显示加我进度: 以哪出形式显示结合Dialog 与Progressbar.
API 26:不建议使用进度保对话框

用于显示日期设置:
构造方法初始化:month 011;北实际月份小
DatePickerDialog OnDateSellistener0:事件处理
onDateSet(DatePicker view, int year, int month, int dayOfMonth:获取用户选择日期
自定义样式参照: AlerDialog。
在Android应用中,有多种对话框: Dialog. AlerDialog. ProgressDialog. 时间。日期等对话框。
Dlalog类,是一切对话艇的基类,需要注意的显。Dialog类虽然可以在界面上显示,但是并非继承8的View类,而是直接从java lang Object开始构造出来的。类似于ACtIvity, Dialog也是有生命周期的,它的生向周期由Activity来维护。Acthity负责生产, 保存,回如它,在生命周明的每个阶段都有一些回调函数供系统方向调用。
AlertDlalog是Dialog的一个直接子 炎, AlertDialogth是Android系统 当中最常用的对话框之-。- 个AlertDialog可以有两个Button或3个Button,可以对- 个AlrDalog设置uilefmessage.不能直接遇过AlertDialog的构造的数来生成-个AlertDialog - 般生成AlertDialog的时候都是通过它的一个内部静心类AlertDialog builder来构造的。

public DatePickerDialog(Context context,OnDateSetListener calBack, //点击确定的回调监听
int year,//显示年份
int monthOfYear,//显示月份
int dayOfMonth)//显示日

TimeDialog :时间Dialog
public TimePickerDialog (Context context,OnTimeSetListener allBack //点击确定的回调监听
int hourOfDay,//几点
int minute,//几分
boolean is24HourView) / 是否是24小时制

自定义Dialog
●继承Dialog类
●实现
构造方法和onCreate
在styles. xml中自定义style
自定义布局
●事件监听
View. OnClickListener
●传值
自定义并实现接口(传出)
类成员变量(传入
总结:
自定义对话框
1.创建一个白定义样式文件
2//获取布局文件Vien view-gelLayouinfatero. inflate(R layout.testull;
//设置的白定义样式布局文件:直接使用布局文件id设置视图
builder.setViewview’;
//获取白定义组件id
Button btn= View.fincViewByid(R.id. login; bin.selText(“测试登录”)
dism1ss()
cance1()
功能数果 一样;cance1网调setonCancelListener();

你可能感兴趣的:(android)