DatePicker是一个时钟控件,用于设置系统或软件的时间的一个对话框。
具体开发步骤:
第一步:strings.xml中定义要用到的文字(方便国际化)
- <?xml
version="1.0" encoding="utf-8"?> - <resources>
- <string
name="hello">Hello World, MainActivity!</string> - <string
name="app_name">datepicker</string> - <string
name="picker">设置日期</string> - </resources>
- 第二步:main.xml文件中定义一个Button控件,文本显示'设置日期'(当单击button按钮时,DatePicker控件出现)
- <?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"
- >
-
<TextView -
android:layout_width="fill_parent" -
android:layout_height="wrap_content" -
android:text="@string/hello" -
/> -
<!-- 单击按钮时,要求DatePicker对话框出现 --> -
<Button -
android:id="@+id/btn" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:text="@string/picker" -
/> - </LinearLayout>
-
- 第三步:MainActivity中的代码:
- package
com.zwy.datepicker.activity; - import
android.app.Activity; - import
android.app.DatePickerDialog; - import
android.app.Dialog; - import
android.app.DatePickerDialog.OnDateSetListener; - import
android.os.Bundle; - import
android.view.View; - import
android.view.View.OnClickListener; - import
android.widget.Button; - import
android.widget.DatePicker; - import
android.widget.Toast; - public
class MainActivity extends Activity { -
private Button btnDate=null; -
private static final int DATE_PICKER_ID=1;//该常量用于标识DatePickerDialog -
public void onCreate(Bundle savedInstanceState) { -
-
super.onCreate(savedInstanceState); -
-
setContentView(R.layout.main); -
btnDate=(Button)findViewById(R.id.btn); -
btnDate.setOnClickListener(listener); -
- }
-
- //单击button按钮显示日期设置对话框
- private
OnClickListener listener=new OnClickListener() { -
public void onClick(View v) { -
showDialog(DATE_PICKER_ID);//此方法会继续调用下面的onCreateDialog()方法将id传入(id是前面定义的 -
一个常量) -
} -
-
}; -
protected Dialog onCreateDialog(int id){ -
switch (id) { -
case DATE_PICKER_ID: -
//onDateSetListener为用户点击设置时执行的回调函数,数字是默认显示的日期, -
注意月份设置11而实际显示12,会自动加1 -
return new DatePickerDialog -
(this,onDateSetListener,2011,11,12); -
} -
return null; -
} -
//用户点击设置时的回调函数 -
DatePickerDialog.OnDateSetListener onDateSetListener=new -
DatePickerDialog.OnDateSetListener() { -
//第一个参数指整个DatePicker,第二个参数是当前设置的年份, -
//第三个参数是当前设置的月份,注意的是,获取设置的月份时需要加1,因为java中规定月份在0~11之间 -
-
public void onDateSet(DatePicker view, int year, int monthOfYear, -
-
int dayOfMonth) { -
//通过Toast对话框输出当前设置的日期 -
Toast.makeText(view.getContext(),year+"-"+(monthOfYear+1)+" -
"+dayOfMonth, Toast.LENGTH_SHORT).show(); -
System.out.println(year+"-"+monthOfYear+"-"+dayOfMonth); -
} -
}; - }
-