DatePickerDialog 与TimePickerDialog 应用

本文介绍如何在Android应用中使用DatePickerDialog和TimePickerDialog来选择日期和时间。通过创建对话框并处理用户的选择,可以实时更新界面显示。文章详细展示了如何在布局文件中放置控件以及如何在Java代码中定义监听器。
摘要由CSDN通过智能技术生成

DatePickerDialog TimePickerDialog 应用

新建工程

修改 main.xml 布局,添加两个按钮、一个 TextView

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

android:id="@+id/widget0"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android">

<Button

android:id="@+id/show_DatePicker"

android:layout_width="150px"

10 android:layout_height="wrap_content"

11 android:layout_x="10px"

12 android:layout_y="10px" android:text="显示日期设置对话框"/>

13 <Button

14 android:id="@+id/show_TimePicker"

15 android:layout_width="150px"

16 android:layout_height="wrap_content"

17 android:layout_x="10px"

18 android:layout_y="70px" android:text="显示时间设置对话框"/>

19 <TextView

20 android:id="@+id/my_TextView"

21 android:layout_width="228px"

22 android:text="TextView"

23 android:layout_x="10px"

24 android:layout_y="180px"

25 android:layout_height="45px"

26 android:textSize="20px"/>

27 </AbsoluteLayout>

复制代码

DatePickerDialog 的定义与初始化以及显示

28 /* 定义 程序用到的UI元素对象:日历设置器对话框 */

29 DatePickerDialog my_datePickerDialog;

30 /*构造一个DatePickerDialog对象,第一个参数为Context

31 第二参数为日期修改事件处理监听器、后面为初始化的年月日*/

32 my_datePickerDialog=new DatePickerDialog(Ex_Ctrl_15_B.this,

33 myDateSetListener, my_Year, my_Month, my_Day);

34 /*显示出日期设置对话框*/

35 my_datePickerDialog.show();

复制代码

DatePickerDialog 的日期修改事件处理

36 /*日期改变设置事件监听器*/

37 private OnDateSetListener myDateSetListener=new OnDateSetListener(){

38 @Override

39 public void onDateSet(DatePicker view, int year, int monthOfYear,

40 int dayOfMonth) {

41 

42 //

43 

44 TODO Auto-generated method stub

45 

46 /*日期改变设置事件处理*/

47 }

48 };

复制代码

TimePickerDialog 的定义与初始化以及显示

49 /* 定义 程序用到的UI元素对象:时间设置器对话框*/

50 TimePickerDialog my_timePickerDialog;

51 /*构造一个TimePickerDialog对象,第一个参数为Context

52 *第二个参数为时间修改事件监听器、后面两个为初始化时间,

53 *最后一个boolean类型设置是否为24小时制*/

54 my_timePickerDialog=new TimePickerDialog(Ex_Ctrl_15_B.this,

55 myTimeSetListener, my_Hour, my_Minute, false);

56 /*显示出日期设置对话框*/

57 my_timePickerDialog.show();

复制代码

TimePickerDialog 的时间修改事件处理

58 /*时间改变设置事件监听器*/

59 private OnTimeSetListener myTimeSetListener=new OnTimeSetListener(){

60 @Override

61 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

62 // TODO Auto-generated method stub

63 /*时间改变设置事件处理*/

64 }

65 };

复制代码

修改 mainActivity.java,实现动态显示修改的日期、时间

66 package zyf.Ex_Ctrl_15_B;

67 /*导入使用的包*/

68 import java.util.Calendar;

69 import java.util.Locale;

70 import android.app.Activity;

71 import android.app.DatePickerDialog;

72 import android.app.TimePickerDialog;

73 import android.app.DatePickerDialog.OnDateSetListener;

74 import android.app.TimePickerDialog.OnTimeSetListener;

75 import android.os.Bundle;

76 import android.view.View;

77 

78 import

79 import

80 import

81 import

82 

83 

84 android.widget.Button;

85 android.widget.DatePicker;

86 android.widget.TextView;

87 android.widget.TimePicker;

88 

89 

90 

91 public class Ex_Ctrl_15_B extends Activity implements Button.OnClickListener{

92 /** Called when the activity is first created. */

93 /* 定义时间变量:年、月、日、小时、分钟 */

94 int my_Year;

95 int my_Month;

96 int my_Day;

97 int my_Hour;

98 int my_Minute;

99 /* 定义 程序用到的UI元素对象:日历设置器对话框、时间设置器对话框、

100 显示时间的TextView、按钮 */

101 DatePickerDialog my_datePickerDialog;

102 TimePickerDialog my_timePickerDialog;

103 TextView showDate_Time;

104 Button showDatePDialog;

105 Button showTimePDialog;

106 /* 定义日历对象,初始化时,用来获取当前时间 */

107 Calendar my_Calendar;

108 /*日期改变设置事件监听器*/

109 private OnDateSetListener myDateSetListener=new OnDateSetListener(){

110 @Override

111 public void onDateSet(DatePicker view, int year,

112 

113 int monthOfYear,

114 

115 int dayOfMonth) {

116 

117 // TODO Auto-generated method stub

118 /*把设置修改后的日期赋值给我的年、月、日变量*/

119 my_Year=year;

120 my_Month=monthOfYear;

121 my_Day=dayOfMonth;

122 /*显示设置后的日期*/

123 loadDate_Time();

124 }

125 };

126 /*时间改变设置事件监听器*/

127 private OnTimeSetListener myTimeSetListener=new OnTimeSetListener(){

128 @Override

129 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

130 // TODO Auto-generated method stub

131 /*把设置修改后的时间赋值给我的时、分变量*/

132 my_Hour=hourOfDay;

133 my_Minute=minute;

134 

135 /*显示设置后的时间*/

136 loadDate_Time();

137 }

138 };

139 @Override

140 public void onCreate(Bundle savedInstanceState) {

141 /* Calendar抽象基类获得实例对象,并设置成中国时区 */

142 my_Calendar = Calendar.getInstance(Locale.CHINA);

143 /* 从日历对象中获取当前的:年、月、日、时、分 */

144 my_Year = my_Calendar.get(Calendar.YEAR);

145 my_Month = my_Calendar.get(Calendar.MONTH);

146 my_Day = my_Calendar.get(Calendar.DAY_OF_MONTH);

147 my_Hour = my_Calendar.get(Calendar.HOUR_OF_DAY);

148 my_Minute = my_Calendar.get(Calendar.MINUTE);

149 super.onCreate(savedInstanceState);

150 setContentView(R.layout.main);

151 /* findViewById()XML中获取UI元素对象 */

152 showDate_Time = (TextView) findViewById(R.id.my_TextView);

153 showDatePDialog=(Button)findViewById(R.id.show_DatePicker);

154 showTimePDialog=(Button)findViewById(R.id.show_TimePicker);

155 /*显示当前时间*/

156 loadDate_Time();

157 /*为按钮添加点击事件监听器*/

158 showDatePDialog.setOnClickListener(this);

159 showTimePDialog.setOnClickListener(this);

160 }

161 /* 设置显示日期时间的方法 */

162 private void loadDate_Time() {

163 // TODO Auto-generated method stub

164 showDate_Time.setText(new StringBuffer()

165 .append(my_Year).append("/")

166 .append(FormatString(my_Month + 1))

167 .append("/").append(FormatString(my_Day))

168 .append(" ").append(FormatString(my_Hour))

169 .append(" : ").append(FormatString(my_Minute)));

170 }

171 /* 日期时间显示两位数的方法 */

172 private String FormatString(int x) {

173 String s = Integer.toString(x);

174 if (s.length() == 1) {

175 s = "0" + s;

176 }

177 return s;

178 }

179 

180 @Override

181 public void onClick(View v) {

182 // TODO Auto-generated method stub

183 switch (v.getId()) {

184 case R.id.show_DatePicker:

185 /*显示日期设置对话框的按钮点击事件处理*/{

186 /*构造一个DatePickerDialog对象,第一个参数为Context

187 第二参数为日期修改事件处理监听器、后面为初始化的年月日*/

188 my_datePickerDialog=new DatePickerDialog(Ex_Ctrl_15_B.this,

189 myDateSetListener, my_Year, my_Month, my_Day);

190 /*显示出日期设置对话框*/

191 my_datePickerDialog.show();

192 }

193 break;

194 case R.id.show_TimePicker:

195 /*显示时间设置对话框的按钮点击事件处理*/{

196 /*构造一个TimePickerDialog对象,第一个参数为Context、第二个参数为时间修改

197 事件监听器、后面两个为初始化时间,最后一个boolean类型设置是否为24小时制*/

198 my_timePickerDialog=new TimePickerDialog(Ex_Ctrl_15_B.this,

199 myTimeSetListener, my_Hour, my_Minute, false);

200 /*显示出日期设置对话框*/

201 my_timePickerDialog.show();

202 }

203 break;

204 default:

205 break;

206 }

207 }

208 }

复制代码

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值