DatePicker控件基础详解
控件介绍: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);
- }
- };
- }
转载于:https://blog.51cto.com/dreamboy/722368