2014-08-02 11:44:59|?次阅读|上传:huigezrx【已有?条评论】发表评论
关键词:Java, Android, 界面设计|来源:唯设编程网
在Android开发的应用程序中,通常都会有时间和日期选择的需求,本文就日期选择控件DatePicker和时间选择控件TimePicker的基本使用方法进行介绍,并给出了具体的实现例子。
1. DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期。如果要捕获用户修改DataPicker控件中的数据改变事件,需要为DatePicker添加OnDateChangedListener监听器。
2. TimePicker是一个时间选择控件,也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器。
下面是一个具体的日期/时间选择示例,首先给出Activity布局的XML代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <DatePicker android:id="@+id/datePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" style="@style/AppTheme" /> <EditText android:id="@+id/dateEt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cursorVisible="false" android:editable="false"/> <TimePicker android:id="@+id/timePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <EditText android:id="@+id/timeEt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cursorVisible="false" android:editable="false"/> </LinearLayout>
这个Activity使用了最简单的LinearLayout作为布局方式,其中包含了1个DatePicker控件,2个EditText控件和一个TimePicker,DatePicker控件用来实现日期选择,TimePicker用来实现时间选择,EditText分别用来显示用户选择的日期和时间。
下面是对应的Activity类实现代码:
package com.example.myapplication2.app; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TimePicker.OnTimeChangedListener; public class MainActivity extends Activity { private EditText dateEt=null; private EditText timeEt=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dateEt=(EditText)findViewById(R.id.dateEt); timeEt=(EditText)findViewById(R.id.timeEt); DatePicker datePicker=(DatePicker)findViewById(R.id.datePicker); TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker); Calendar calendar=Calendar.getInstance(); int year=calendar.get(Calendar.YEAR); int monthOfYear=calendar.get(Calendar.MONTH); int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH); datePicker.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener(){ public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { dateEt.setText("您选择的日期是:"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日。"); } }); timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){ public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { timeEt.setText("您选择的时间是:"+hourOfDay+"时"+minute+"分。"); } }); } }
本示例程序比较简单,所有代码都在Activity的onCreate函数中完成,其中分别添加了DateTicker控件的OnDateChangedListener监听器和TimePicker控件的OnTimeChangedListener监听器,以实现当用户改变日期和时间的时候将结果下是在下方的EditText控件中。
最终实现的效果如下: