ch07 Android 日期与时间对话框
--------------------------------------------MainActivity.java-------------------------------------
package com.ch07;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
/**
*
* 项目名称:com.ch07
* 类名称:MainActivity
* 类描述: DatePickerDialog、TimePickerDialog、ProgressDialog、Thread、Calendar
* 创建人:fy
* 创建时间:2012-11-9 下午4:07:54
* Copyright (c) 方勇-版权所有
*/
public class MainActivity extends Activity {
/* 日期对话框标识 */
private final static int DIALOG_DATE = 0;
/* 时间对话框标识 */
private final static int DIALOG_TIME = 1;
/* 日志标识 */
private final static String TAG = "fy";
/* 进度值 */
private int processNum = 0;
/* 下载进度对话框 */
private ProgressDialog pDialog;
/* 日历对象,保存年月日小时分钟秒 星期信息 */
private Calendar calendar = Calendar.getInstance(Locale.CHINA);
/* 显示当前时间 */
private TextView view_datetime;
private Button btn_date;
private Button btn_time;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
setListeners();
/* 显示下载进度 */
buildProcessDialog().show();
/* 更新下载进度 */
updateProcess();
}
/* 初始化UI */
private void findViews() {
view_datetime = (TextView) findViewById(R.id.datetime);
btn_date = (Button) findViewById(R.id.btn_date);
btn_time = (Button) findViewById(R.id.btn_time);
}
/* 设置UI监听器 */
private void setListeners() {
btn_date.setOnClickListener(onClickListener);
btn_time.setOnClickListener(onClickListener);
}
/* 两个按钮的监听事件 */
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v == btn_date) {
showDialog(DIALOG_DATE);
} else if (v == btn_time) {
showDialog(DIALOG_TIME);
}
}
};
/* 每次Dialog打开的时候被调用 */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DATE:
buildDateDialog().show();
break;
case DIALOG_TIME:
buildTimeDialog().show();
break;
}
return super.onCreateDialog(id);
}
/* 构建日期对话框 */
private Dialog buildDateDialog() {
DatePickerDialog dateDialog = new DatePickerDialog(this, oOnDateSetListener, calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
return dateDialog;
}
/* 构建时间对话框 */
private Dialog buildTimeDialog() {
TimePickerDialog timeDialog = new TimePickerDialog(this, onTimeSetListener, calendar.get(Calendar.HOUR),
calendar.get(Calendar.MINUTE), true);
return timeDialog;
}
/* 构建进度对话框 */
private Dialog buildProcessDialog() {
pDialog = new ProgressDialog(this);
pDialog.setTitle("进度条");
pDialog.setMessage("正在下载中.....");
pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
/* 是否可中断 */
pDialog.setCancelable(true);
return pDialog;
}
/* 更新下载进度 */
private void updateProcess() {
new Thread() {
@Override
public void run() {
try {
while (processNum <= 100) {
pDialog.setProgress(processNum++);// 设置进度值,并加1
Thread.sleep(100);//
}
pDialog.cancel();// 关闭对话框
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.run();
}
}.start();
}
/* 日期设置按钮对应的监听对象 */
private DatePickerDialog.OnDateSetListener oOnDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(year, monthOfYear, dayOfMonth);
Log.v(TAG,
calendar.get(Calendar.YEAR) + "年" + calendar.get(Calendar.MONTH) + "月" + calendar.get(Calendar.DAY_OF_MONTH)
+ "日");
updateDateLabel();
}
};
/* 日期设置按钮对应的监听对象 */
private TimePickerDialog.OnTimeSetListener onTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
updateDateLabel();
}
};
/* 更新TextView,显示时间 */
private void updateDateLabel() {
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
view_datetime.setText(df.format(date));
}
}
--------------------------------------------效果图-------------------------------------------------
- com.ch07.rar (691.5 KB)
- 下载次数: 30
- 下周课程第二部分.rar (2.9 MB)
- 下载次数: 21
- 查看图片附件
更多相关文章
- android定制对话框
- 不让屏幕翻转扰乱你的进度对话框
- Android TimeLine 时间节点轴的实现
- Android时间工具类 本地转UTC,UTC转本地
- 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
- 对话框式activity