为了能够让用户选择日期和时间,Android提供了日期、时间拾取器,分别是DatePicker组件和TimePicker组件。这两个组件使用比较简单,可以在Eclipse的可视化界面设计器中,选择对应的组件并拖拽到布局文件中。为了可以在程序中获取用户选择的日期、时间,还要为DatePicker和TimePicker组件添加事件监听器。其中DatePicker组件对应的事件监听器是OnDateChangedListener,而TimePicker组件对应的时间监听器是OnTimeChangedListener。
下面通过一个实例来说明日期、时间拾取器的具体应用。
res/layout/main.xml:
MainActivity:
下面通过一个实例来说明日期、时间拾取器的具体应用。
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="#FFFFFF"> <DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
MainActivity:
package com.example.test; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; import android.widget.Toast; public class MainActivity extends Activity { private OnCheckedChangeListener checkBox_listener; private int year,month,day,hour,minute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取日期拾取组件 DatePicker datepicker=(DatePicker)findViewById(R.id.datePicker1); //获取时间拾取组件 TimePicker timepicker=(TimePicker)findViewById(R.id.timePicker1); //将时间拾取组件设置为24小时制式显示 timepicker.setIs24HourView(true); //创建一个日历对象,获取当前的年/月/日/小时/分钟数 Calendar calendar=Calendar.getInstance(); year=calendar.get(Calendar.YEAR); month=calendar.get(Calendar.MONTH); day=calendar.get(Calendar.DAY_OF_MONTH); hour=calendar.get(Calendar.HOUR_OF_DAY); minute=calendar.get(Calendar.MINUTE); //初始化日期拾取器,并在初始化时指定监视器 datepicker.init(year, month, day, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int month, int day) { MainActivity.this.year=year; MainActivity.this.month=month; MainActivity.this.day=day; Show(year,month,day,hour,minute); } }); //为时间拾取器设置监听器 timepicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hour, int minute) { MainActivity.this.hour=hour; MainActivity.this.minute=minute; Show(year,month,day,hour,minute); } }); } protected void Show(int year, int month, int day, int hour, int minute) { //通过DatePicker获取的月份是0-11月,所以month要加1才能代表真正的月份 String str=year+"年"+(month+1)+"月"+day+"日 "+hour+":"+minute; Toast.makeText(this, str, Toast.LENGTH_SHORT).show();; } }
运行结果如图所示:
转载请注明出处:http://blog.csdn.net/acmman/article/details/44807589