阅读更多

--------------------------------------------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));

}

}

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

ch07 Android 日期与时间对话框_第1张图片

ch07 Android 日期与时间对话框_第2张图片

ch07 Android 日期与时间对话框_第3张图片

ch07 Android 日期与时间对话框_第4张图片

  • ch07 Android 日期与时间对话框_第5张图片
  • 大小: 83.4 KB
  • ch07 Android 日期与时间对话框_第6张图片
  • 大小: 73.1 KB
  • ch07 Android 日期与时间对话框_第7张图片
  • 大小: 93.5 KB
  • ch07 Android 日期与时间对话框_第8张图片
  • 大小: 89.1 KB
  • com.ch07.rar (691.5 KB)
  • 下载次数: 30
  • 下周课程第二部分.rar (2.9 MB)
  • 下载次数: 21
  • 查看图片附件

更多相关文章

  1. android定制对话框
  2. 不让屏幕翻转扰乱你的进度对话框
  3. Android TimeLine 时间节点轴的实现
  4. Android时间工具类 本地转UTC,UTC转本地
  5. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  6. 对话框式activity

随机推荐

  1. Android(安卓)mediaplayer
  2. Android中UI设计的一些技巧!!!
  3. Android(安卓)JNI介绍
  4. Android(安卓)解决ListView 和 ScrollVie
  5. 解决 Android(安卓)在Eclipse 开发中 Cla
  6. Android(安卓)布局 精准定位 平衡定位 相
  7. android之SharedPreferences进行数据存储
  8. android salite3 使用实例
  9. cocos2d-x学习笔记06:如何将win32移植到an
  10. Android应用开发中的风格和主题(style,th