`

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(thisoOnDateSetListenercalendar.get(Calendar.YEAR),

calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));

return dateDialog;

}

 

/* 构建时间对话框 */

private Dialog buildTimeDialog() {

TimePickerDialog timeDialog = new TimePickerDialog(thisonTimeSetListenercalendar.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));

}

}

--------------------------------------------效果图-------------------------------------------------

<!--EndFragment-->

  • 大小: 83.4 KB
  • 大小: 73.1 KB
  • 大小: 93.5 KB
  • 大小: 89.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics