ch07 Android(安卓)日期与时间对话框
--------------------------------------------MainActivity.java-------------------------------------
packagecom.ch07;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.Locale;
importandroid.app.Activity;
importandroid.app.DatePickerDialog;
importandroid.app.Dialog;
importandroid.app.ProgressDialog;
importandroid.app.TimePickerDialog;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.DatePicker;
importandroid.widget.TextView;
importandroid.widget.TimePicker;
/**
*
*项目名称:com.ch07
*类名称:MainActivity
*类描述:DatePickerDialog、TimePickerDialog、ProgressDialog、Thread、Calendar
*创建人:fy
*创建时间:2012-11-9下午4:07:54
*Copyright(c)方勇-版权所有
*/
publicclassMainActivityextendsActivity{
/*日期对话框标识*/
privatefinalstaticintDIALOG_DATE=0;
/*时间对话框标识*/
privatefinalstaticintDIALOG_TIME=1;
/*日志标识*/
privatefinalstaticStringTAG="fy";
/*进度值*/
privateintprocessNum=0;
/*下载进度对话框*/
privateProgressDialogpDialog;
/*日历对象,保存年月日小时分钟秒星期信息*/
privateCalendarcalendar=Calendar.getInstance(Locale.CHINA);
/*显示当前时间*/
privateTextViewview_datetime;
privateButtonbtn_date;
privateButtonbtn_time;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
setListeners();
/*显示下载进度*/
buildProcessDialog().show();
/*更新下载进度*/
updateProcess();
}
/*初始化UI*/
privatevoidfindViews(){
view_datetime=(TextView)findViewById(R.id.datetime);
btn_date=(Button)findViewById(R.id.btn_date);
btn_time=(Button)findViewById(R.id.btn_time);
}
/*设置UI监听器*/
privatevoidsetListeners(){
btn_date.setOnClickListener(onClickListener);
btn_time.setOnClickListener(onClickListener);
}
/*两个按钮的监听事件*/
privateView.OnClickListeneronClickListener=newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
if(v==btn_date){
showDialog(DIALOG_DATE);
}elseif(v==btn_time){
showDialog(DIALOG_TIME);
}
}
};
/*每次Dialog打开的时候被调用*/
@Override
protectedDialogonCreateDialog(intid){
switch(id){
caseDIALOG_DATE:
buildDateDialog().show();
break;
caseDIALOG_TIME:
buildTimeDialog().show();
break;
}
returnsuper.onCreateDialog(id);
}
/*构建日期对话框*/
privateDialogbuildDateDialog(){
DatePickerDialogdateDialog=newDatePickerDialog(this,oOnDateSetListener,calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));
returndateDialog;
}
/*构建时间对话框*/
privateDialogbuildTimeDialog(){
TimePickerDialogtimeDialog=newTimePickerDialog(this,onTimeSetListener,calendar.get(Calendar.HOUR),
calendar.get(Calendar.MINUTE),true);
returntimeDialog;
}
/*构建进度对话框*/
privateDialogbuildProcessDialog(){
pDialog=newProgressDialog(this);
pDialog.setTitle("进度条");
pDialog.setMessage("正在下载中.....");
pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
/*是否可中断*/
pDialog.setCancelable(true);
returnpDialog;
}
/*更新下载进度*/
privatevoidupdateProcess(){
newThread(){
@Override
publicvoidrun(){
try{
while(processNum<=100){
pDialog.setProgress(processNum++);//设置进度值,并加1
Thread.sleep(100);//
}
pDialog.cancel();//关闭对话框
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
super.run();
}
}.start();
}
/*日期设置按钮对应的监听对象*/
privateDatePickerDialog.OnDateSetListeneroOnDateSetListener=newDatePickerDialog.OnDateSetListener(){
@Override
publicvoidonDateSet(DatePickerview,intyear,intmonthOfYear,intdayOfMonth){
calendar.set(year,monthOfYear,dayOfMonth);
Log.v(TAG,
calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)
+"日");
updateDateLabel();
}
};
/*日期设置按钮对应的监听对象*/
privateTimePickerDialog.OnTimeSetListeneronTimeSetListener=newTimePickerDialog.OnTimeSetListener(){
@Override
publicvoidonTimeSet(TimePickerview,inthourOfDay,intminute){
calendar.set(Calendar.HOUR,hourOfDay);
calendar.set(Calendar.MINUTE,minute);
updateDateLabel();
}
};
/*更新TextView,显示时间*/
privatevoidupdateDateLabel(){
Datedate=calendar.getTime();
DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ssE");
view_datetime.setText(df.format(date));
}
}
--------------------------------------------效果图-------------------------------------------------
<!--EndFragment-->
更多相关文章
- Android(安卓)可滚动圆形进度条 滑块和进度在进度条上面跟着滚动
- Android(安卓)seekbar 滑动时上方显示进度
- android 自定义基于组件的注册用户对话框
- android中.classpath和.project作用
- android 返回键退出程序
- 有板有眼:Google如何利用Moto的专利来帮助Android开发商?
- android自定义adapter 滑动屏幕时 进度条显示混乱
- 【更新】Google 与微软开始口水战
- android自定义adapter 滑动屏幕时 进度条显示混乱