酒业网站建设,如何用代码制作网站,网站开发资源,携手并进 合作共赢前言 这一篇博客分别讲解Android平台下#xff0c;关于日期和时间的几个相关控件。包括DatePicker#xff08;日期选择控件#xff09;、TimePicker#xff08;时间选择控件#xff09;、DatePickerDialog#xff08;日期选择对话框#xff09;、TimePickerDialog#…前言 这一篇博客分别讲解Android平台下关于日期和时间的几个相关控件。包括DatePicker日期选择控件、TimePicker时间选择控件、DatePickerDialog日期选择对话框、TimePickerDialog时间选择对话框、AnalogClock模拟时钟控件、DigitalClock数字时钟控件。对于时间控件无非就是一个展示、修改、获取等操作下面一一讲解。 DatePicker、TimePicker DatePicker、TimePicker都继承自android.widget.FrameLayout并且默认展示风格、与操作风格也类似。DatePicker用于展示一个日期选择控件TimePicker用于展示一个时间选择控件。 作为一个日期选择控件DatePicker可以通过设置属性来确定日期选择范围也可以通过定义好的方法获取到当前选中的时间并且在修改日期的时候有响应的事件对其进行响应。 DatePicker常用相关属性 android:calendarViewShown是否显示日历。android:startYear:设置可选开始年份。android:endYear设置可选结束年份。android:maxDate设置可选最大日期以mm/dd/yyyy格式设置。android:minDate设置可选最小日期以mm/dd/yyyy格式设置。 DatePicker的方法而言除了常用获取属性的setter、getter方法之外还需要特别注意一个初始化的方法init()方法用于做DatePicker控件的初始化并且设置日期被修改后回调的响应事件。此方法的签名如下 init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener) 从上面的init()方法可以看到DatePicker被修改时响应的事件是DatePicker.OnDateChangedListener事件如果要响应此事件需要实现其中的onDateChanged()方法其中参数从签名即可了解意思这里不再累述。 onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) 作为一个时间选择控件来说TimePicker需要与时间相关的getter、setter方法之外还需要有时间被修改够回调的响应事件。 TimePicker常用方法有如下几个 is24HourView()判断是否为24小时制。setIs24HourView()设置是否为24小时制显示。getCurrentXxx()获取当前时间。setCurrentXxx()设置当前时间。setOnTimeChangedListener()设置时间被修改的回调方法。 TimePicker控件被修改的回调方法通过setOnTimeChangedListener()方法设置其传递一个TimePicker.OnTimeChangedListener接口需要实现其中的onTimeChanged()方法。 下面通过一个示例来讲解这两个控件的使用在示例中分别展示了这两个控件并在其修改之后把修改值通过Toast的方式展示到屏幕上。 布局代码 1 ?xml version1.0 encodingutf-8?2 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android3 android:layout_widthmatch_parent4 android:layout_heightmatch_parent5 android:orientationvertical 6 7 DatePicker8 android:idid/dpPicker9 android:calendarViewShownfalse
10 android:layout_widthmatch_parent
11 android:layout_heightwrap_content /
12
13 TimePicker
14 android:idid/tpPicker
15 android:layout_widthmatch_parent
16 android:layout_heightwrap_content /
17
18
19 /LinearLayout 实现代码 1 package com.bgxt.datatimepickerdemo;2 3 import java.text.SimpleDateFormat;4 import java.util.Calendar;5 6 import android.app.Activity;7 import android.os.Bundle;8 import android.widget.DatePicker;9 import android.widget.DatePicker.OnDateChangedListener;
10 import android.widget.TextView;
11 import android.widget.TimePicker;
12 import android.widget.Toast;
13
14 public class DataTimePicker extends Activity {
15 private DatePicker datePicker;
16 private TimePicker timePicker;
17
18 Override
19 protected void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.activity_datatimepicker);
22
23 datePicker (DatePicker) findViewById(R.id.dpPicker);
24 timePicker (TimePicker) findViewById(R.id.tpPicker);
25
26 datePicker.init(2013, 8, 20, new OnDateChangedListener() {
27
28 Override
29 public void onDateChanged(DatePicker view, int year,
30 int monthOfYear, int dayOfMonth) {
31 // 获取一个日历对象并初始化为当前选中的时间
32 Calendar calendar Calendar.getInstance();
33 calendar.set(year, monthOfYear, dayOfMonth);
34 SimpleDateFormat format new SimpleDateFormat(
35 yyyy年MM月dd日 HH:mm);
36 Toast.makeText(DataTimePicker.this,
37 format.format(calendar.getTime()), Toast.LENGTH_SHORT)
38 .show();
39 }
40 });
41
42 timePicker.setIs24HourView(true);
43 timePicker
44 .setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
45 Override
46 public void onTimeChanged(TimePicker view, int hourOfDay,
47 int minute) {
48 Toast.makeText(DataTimePicker.this,
49 hourOfDay 小时 minute 分钟,
50 Toast.LENGTH_SHORT).show();
51 }
52 });
53
54 }
55 } 效果展示 DatePickerDialog、TimePickerDialog DatePickerDialog、TimePickerDialog是两个对话框控件一个弹出对话框用于选择日期一个弹出对话框用于选择时间都继承自android.app.AlertDialog。 这两个控件的开发过程其主要就是开发其选择后日期或时间后相应的事件。 对于DatePickeDialog而言通过构造函数可以设置弹出的日期控件的初始值并且可以指定选中日期后回调事件的实现构造函数的签名如下 DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) 其中DatePickerDialog.OnDateSetListener为日期选中的响应事件其他为日期弹出窗口初始化的日期对于一个OnDateSetListener接口而言需要实现其中的onDateSet()方法在这个方法内可以得到用户选中的日期。 对于TimePickerDialog而言同样可以通过构造函数设置初始值并且设定选中日期后回调事件的实现构造函数的签名如下 TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView) 其中TimePickerDialog.OnTimeSetListener为时间选中的响应事件其他为时间弹出窗口初始化的时间对于一个OnTimeSetListener接口而言需要实现其中的onTimeSet()方法在这个方法内可以得到用户选中的时间。 AnalogClock、DigitalClock AnalogClock、DigitalClock为两个时间展示控件切只是展示的风格不同而已没有什么太大的区别。有一点值得注意的就是这两个控件展示的时间是无法修改的仅为系统当前时间。看示例就能明白没什么好详细说的。 下面通过一个例子说明一下DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock四个控件的使用。 布局代码 1 ?xml version1.0 encodingutf-8?2 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android3 android:layout_widthmatch_parent4 android:layout_heightmatch_parent5 android:orientationvertical 6 7 TextView8 android:layout_widthfill_parent9 android:layout_heightwrap_content
10 android:text指针时钟 /
11
12 AnalogClock
13 android:layout_widthfill_parent
14 android:layout_heightwrap_content /
15
16 TextView
17 android:layout_widthfill_parent
18 android:layout_heightwrap_content
19 android:text数字时钟 /
20
21 DigitalClock
22 android:layout_widthfill_parent
23 android:layout_heightwrap_content
24 android:textSize20dp /
25 Button
26 android:idid/btnTimePickerDialog
27 android:layout_widthfill_parent
28 android:layout_heightwrap_content
29 android:textShow TimePickerDialog
30 /
31 Button
32 android:idid/btnDatePickerDialog
33 android:layout_widthfill_parent
34 android:layout_heightwrap_content
35 android:textShow DatePickerDialog
36 /
37 /LinearLayout 实现代码 1 package com.bgxt.datatimepickerdemo;2 3 import android.app.Activity;4 import android.app.DatePickerDialog;5 import android.app.DatePickerDialog.OnDateSetListener;6 import android.app.TimePickerDialog;7 import android.app.TimePickerDialog.OnTimeSetListener;8 import android.os.Bundle;9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12 import android.widget.DatePicker;
13 import android.widget.TimePicker;
14 import android.widget.Toast;
15
16 public class AnalogDigitalClock extends Activity implements OnClickListener {
17 private Button btnDate, btnTime;
18
19 Override
20 protected void onCreate(Bundle savedInstanceState) {
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.activity_anologdigital);
23 btnDate (Button) findViewById(R.id.btnDatePickerDialog);
24 btnTime (Button) findViewById(R.id.btnTimePickerDialog);
25 btnDate.setOnClickListener(this);
26 btnTime.setOnClickListener(this);
27 }
28
29 Override
30 public void onClick(View v) {
31 switch (v.getId()) {
32 case R.id.btnDatePickerDialog:
33 DatePickerDialog datePickernew DatePickerDialog(AnalogDigitalClock.this, new OnDateSetListener() {
34
35 Override
36 public void onDateSet(DatePicker view, int year, int monthOfYear,
37 int dayOfMonth) {
38 // TODO Auto-generated method stub
39 Toast.makeText(AnalogDigitalClock.this, yearyear (monthOfYear1)month dayOfMonthday, Toast.LENGTH_SHORT).show();
40 }
41 }, 2013, 7, 20);
42 datePicker.show();
43 break;
44
45 case R.id.btnTimePickerDialog:
46 TimePickerDialog timenew TimePickerDialog(AnalogDigitalClock.this, new OnTimeSetListener() {
47
48 Override
49 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
50 // TODO Auto-generated method stub
51 Toast.makeText(AnalogDigitalClock.this, hourOfDayhour minuteminute, Toast.LENGTH_SHORT).show();
52 }
53 }, 18, 25, true);
54 time.show();
55 break;
56 }
57
58 }
59 } 效果展示 源码下载 总结 以上就讲解了在Android平台下几个与时间相关的控件没有什么特别的注意设置与响应事件即可。 请支持原创尊重原创转载请注明出处。谢谢。