8.UI对话框

1.对话框.
●AletDialog: 功能最为丰富,实际应用最为广泛的对话框。
●ProgressDialog: 进度对话框,是对简单进度条的封装。
●DataPickerDialog: 日期选择对话框。
●TimePickerDialog;时间选择对话框。
●自定义对话框:对话框布局自定义,并设置监听事件

2.自定义对话框

创建一个自定义样式文件
//获取布局文件View view-getLayounfatero,inflate(R.layout.est.null;
//设置的自定义样式布局文件;直接使用布局文件id设置视图
builder.setViewview);
//获取自定义组件id
Buton btn= view.findViewByldlR.id.login; btn.setTex[“测试登录”);

3.ProgressDialog
显示加截进度; 以弹出形式显示;结合Dialog与Progressbar

//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=getwrindonManager();
Display d=n.getDefaultDisplayO; 获取屏幕宽、高windowlanager .LayoutParans p . dialogrindow. getAttributes(); //获取对话框当前的参数值
//改置高度和定度
p.height=(int) (d.getHeight()*0.4); //高度设置为屏幕的0.6
p.width = (int) (d.getiridth() *0.6); //宽度设置为屏幕的0.65
p.gravity=Gravity.TOP://设置位置
p.alpha=0.8f://设置透明度
dalogirindow.setAttributes(p);

4.进度条对话框(ProgressDialog):
●将进度条简单包裹起来,可以设置进度条的各种式样
●启动线程,模拟耗时任务的进行, 下载完成后,自动消失

5.DateDialog :日期Dialog
「用于显示口期设置」
构造方法初始化: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 . print1n(month);
//1.创建11期对话枢:
/**
* @param context 上下文
* @param listener 监听器
* @param year 初始化年月日
*@param month 值比实际值月小1
{@1ink Calendar #MONTH})
* @param dayofMonth the initially selected day of month (1-31 depending
on month)
*/
DatepickerDialog dialog=new DatepickerDialog(this, new 
DatePickerDialog . onDateSetListener() {
@override//可以获取用户设置的日期
pub1ic void onDateSet (DatePicker view, int year, int month, int dayofMonth) {
String meg=year+" 年"+(month+1)+"月"+dayofMonth+"Il";
Log.i("info=>", meg);
}
},year ,month,day);
dialog. show() ;

1.创建
2.设置
3.事件

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

6. TimeDialog :时间Dialog

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

7.自定义Dialog
●继承Dialog类
●实现
构造方法和onCreate
在styles. xml中自定义style
自定义布局
●事件监听
View. OnClickListener .
●传值
自定义并实现接口(传出)
类成员变量(传入)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值