`

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
分享到:
评论

相关推荐

    调用进度条的对话框

    "ch07_progressbar_dialog"可能是一个章节名,暗示了相关资料可能在某个书籍或教程的第七章中,专门讨论进度条对话框的实现。 总之,理解和正确使用调用进度条的对话框是提高用户体验的关键,它让程序看起来更加...

    ch07_android开发_源码.zip

    标题"ch07_android开发_源码.zip"表明这是一个关于Android开发的源码学习资料,可能包含了某个特定章节或主题的内容,例如第七章的学习资源。虽然没有具体的标签,但我们可以从文件名推测这可能是某个教程或书籍的...

    ch07_android开发_

    本章"ch07_android开发_"将深入探讨ListView的使用,从基础到高级技巧,帮助开发者掌握这一核心功能。 1. **ListView基本使用**:ListView是Android中用于显示可滚动列表的视图,通常用于显示大量数据。它通过...

    android ophone开发完全讲义源码ch07

    《Android OPhone开发完全讲义源码Ch07》是一份深入探讨Android OPhone平台开发的教程资料,其中包含了第七章的源代码。这一章节很可能着重讲解了Android系统在OPhone定制版本上的应用开发和系统集成。OPhone是基于...

    支持调用进度条的对话框功能.zip

    在Android开发中,进度条对话框(ProgressBar Dialog)是一种常见的用户界面元素,它允许用户知道应用程序正在执行耗时操作,并提供了交互控制,如开始、暂停、继续和停止。本项目"支持调用进度条的对话框功能.zip...

    支持对话框添加图像的效果.zip

    4. **图片的调整与处理**: 有时图片需要缩放、裁剪或调整透明度以适应对话框大小。可以使用 `BitmapFactory.Options` 对图片进行解码,或使用 `Bitmap.createScaledBitmap()` 进行缩放。此外,`ImageView` 的 `...

    数据库ch07数据库ch07.ppt

    数据库ch07数据库ch07

    疯狂android讲义(第2版) 源码 ch07-09

    源码ch07-09涵盖了书中第七章到第九章的内容,这些章节通常会涉及Android应用开发中的核心概念和技术。 第七章通常会讲解Android的UI设计与实现,包括布局管理器如LinearLayout、RelativeLayout、GridLayout等,...

    Android SDK开发范例大全(第二版)CH07_2.rar

    《Android SDK开发范例大全(第二版)CH07_2.rar》是一个包含多个示例项目的压缩包,主要聚焦于Android应用开发中的特定章节——可能是第七章的第二部分。从提供的压缩包子文件名称来看,我们可以推测这些项目是针对...

    ch07-2.rar

    本资源"ch07-2.rar"包含了"ch07-2.ppt",这是一个关于数电第七章的PPT教程,旨在帮助初学者快速入门并节省自学时间。下面我们将详细探讨数电这一章节可能涵盖的知识点。 在数字电子技术中,第七章通常会涉及到逻辑...

    Android SDK开发范例大全(第二版)CH07_1.rar

    《Android SDK开发范例大全(第二版)CH07_1.rar》是一个包含多个示例项目的压缩包,这些示例项目主要围绕Android SDK的第七章内容展开,旨在帮助开发者深入理解并掌握Android应用开发的关键技术。这个压缩包中的每一...

    用户登陆对话框效果源码.zip

    1. **DialogFragment**: 登录对话框使用了`DialogFragment`,它是Android中的一个类,继承自`Fragment`,用于展示与活动关联的对话框。`DialogFragment`不仅提供了对话框的功能,还能像普通`Fragment`一样进行生命...

    Ch07市场调研与预测.pptx

    这不仅需要企业对市场有深刻的洞察力,更需要充分利用市场营销调研与预测技术,挖掘潜在的市场机会,规避风险,并优化营销策略。市场调研与预测是企业市场营销信息系统(MIS)中的核心组成部分,它不仅帮助管理层对...

    Ch07 程序调试与异常处理.ppt

    【程序调试与异常处理】 程序调试是软件开发过程中的关键环节,目的是找出并修复程序中的错误,确保程序正常运行。而异常处理则是处理程序运行时可能出现的问题,保证程序的健壮性。 首先,我们需要理解程序错误的...

    信息系统软件设计(c#.net版)CH07代码

    标题中的“信息系统软件设计(C#.NET版)CH07代码”揭示了这是一个关于C#.NET编程语言在构建信息系统中的具体应用,特别是集中在第7章的内容。C#.NET是由微软开发的一种面向对象的编程语言,它被广泛用于开发Web应用...

    ch07 整数规划.rar_ch07_整数规划

    标题"ch07 整数规划.rar_ch07_整数规划"表明这是一个关于整数规划的压缩包文件,可能包含第七章的学习材料或教程,如PDF文档、课件或习题解答,用于深入理解和掌握整数规划的概念和方法。 描述中的"整数规划是指...

    多样式的对话框效果

    在Android开发中,对话框(Dialog)是一种常见的用户交互组件,用于向用户展示临时信息或者进行简单的交互操作。本文将详细解析"多样式的对话框效果"这个项目,它提供了四种不同类型的对话框:删除对话框、简单列表...

    精通Android4源码_source_code_of_ProAndroid4

    `ProAndroid4_Ch07_TestMenus.zip` 集中在菜单设计。Android应用的菜单可以出现在选项卡、Action Bar或者弹出式窗口中,这部分源码会演示如何创建和响应菜单事件,以及如何利用菜单实现多层次的交互。 `ProAndroid4...

    ch07-1.rar

    本资源"ch07-1.rar"是一个专为初学者设计的数电学习资料包,其内含的"ch07-1.ppt"文件旨在帮助新手快速掌握数电基础知识,节省查阅教材的时间。 PPT文件通常包含丰富的文本、图表和示意图,便于学习者直观理解复杂...

Global site tag (gtag.js) - Google Analytics