日期和时间是任何一个系统中很重要的两块内容,我们在这里来分享一下DatePicker日期控件和TimePicker时间控件在安卓中是如何使用的。
这个例子实现的是时间和日期控件的展示,并根据时间或日期的变化来更新显示的信息。
整体思路:在xml文件中定义一个DatePicker控件、TimePicker控件和TextView控件,在活动中实现OnDateChangedListener,OnTimeChangedListener,初始化日期控件的日期,获取当前的日期和时间,并显示在TextView上,设置TimePicker控件的时间显示格式并注册setOnTimeChangedListener这个事件;onTimeChanged这个事件是时间控件触发的事件,使用Toast方式输出当前时间信息;onDateChanged这个事件是日期控件触发的事件,在里面通过获取当前的时间实例化Calendar类,并格式化时间显示方式,将该显示方式下的当前日期信息绑定到TextView控件上显示。
activity_main.xml文件:
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <DatePicker android:id="@+id/datePicker" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TimePicker android:id="@+id/TimePicker" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16dp"/> </LinearLayout>
MainActivity.java文件:
public class MainActivity extends Activity implements OnDateChangedListener,OnTimeChangedListener{ private TextView textView; private DatePicker datePicker; private TimePicker timePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView=(TextView)findViewById(R.id.textview); datePicker=(DatePicker)findViewById(R.id.datePicker); timePicker=(TimePicker)findViewById(R.id.TimePicker); datePicker.init(2015, 1, 25, this);//初始化日期 timePicker.setIs24HourView(true);//显示时间是否按24小时制 timePicker.setOnTimeChangedListener(this);//注册事件 } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } //时间控件的触发 @Override public void onTimeChanged(TimePicker arg0, int hour, int minute) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "hour:"+hour+" minute:"+minute, 1).show(); } //日期控件的触发 @Override public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub Calendar calendar=Calendar.getInstance(); calendar.set(datePicker.getYear(), datePicker.getMonth(),datePicker.getDayOfMonth(),timePicker.getCurrentHour(),timePicker.getCurrentMinute()); SimpleDateFormat format=new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); textView.setText(format.format(calendar.getTime())); } }