android之DatePicker

DatePicker:就是日期选择器,本文是设置了一个文本框和一个按钮,按钮的作用是用来改变日期的,文本框是用来显示设置的日期的。

先看效果图:

这是开始画面,第一个是文本框,第二个是个按钮

 

 

当点击按钮的时候跳出一个对话框,这个对话框是系统格式的,后面的文章将会介绍自定义对话框的。

 

 

设置日期:

 

 

日期修改之后器显示在文本框上:

 

 

layout文件中的xml文件:

这里就设置了一个文本框和一个按钮

  
  
  
  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent" 
  5.     android:orientation="vertical" 
  6.      > 
  7.  
  8.     <TextView 
  9.         android:id="@+id/myDisplayData" 
  10.         android:layout_width="fill_parent" 
  11.         android:layout_height="wrap_content" 
  12.         android:text="当前日期:" /> 
  13.     <Button 
  14.         android:id="@+id/ChangeData" 
  15.         android:layout_width="wrap_content" 
  16.         android:layout_height="wrap_content" 
  17.         android:text="改变日期" 
  18.           
  19.         /> 
  20.  
  21. </LinearLayout> 

Activatity.java文件:

在日期设置中要注意一点,系统中月是从0到11,所以每次获得的日期中的月要加1。

  
  
  
  
  1. package com.cheng.datacontrol;  
  2.  
  3. import java.util.Calendar;  
  4.  
  5. import android.os.Bundle;  
  6. import android.R.integer;  
  7. import android.app.Activity;  
  8. import android.app.DatePickerDialog;  
  9. import android.app.DatePickerDialog.OnDateSetListener;  
  10. import android.app.Dialog;  
  11. import android.view.Menu;  
  12. import android.view.View;  
  13. import android.view.View.OnClickListener;  
  14. import android.widget.Button;  
  15. import android.widget.DatePicker;  
  16. import android.widget.DatePicker.OnDateChangedListener;  
  17. import android.widget.TextView;  
  18.  
  19. public class DataControlActivity extends Activity {  
  20.     private TextView mTextView;  
  21.     private Button mButton;  
  22.     private int mYear;  
  23.     private int mMonth;  
  24.     private int mDay;  
  25.     //设置对话框ID  
  26.     private final int DATE_DIALOG_ID = 0;  
  27.     //这是个回调函数,当用户修改日期的时候将会调用这个函数  
  28.     private OnDateSetListener dsl = new DatePickerDialog.OnDateSetListener() {  
  29.           
  30.         @Override 
  31.         public void onDateSet(DatePicker view, int year, int monthOfYear,  
  32.                 int dayOfMonth) {  
  33.             // TODO Auto-generated method stub  
  34.             mYear = year;  
  35.             mMonth = monthOfYear;  
  36.             mDay = dayOfMonth;  
  37.             //获得用户更改的日期,我们将它设置到我们的Textview上面,显示出来  
  38.             mTextView.setText(mYear + "-" + (mMonth+1) + "-" + mDay);  
  39.         }  
  40.     };  
  41.       
  42.     //重写创建对话框方法  
  43.     protected Dialog onCreateDialog(int id) {  
  44.         switch (id) {  
  45.         //创建一个日期修改的对话框,当按钮按下的时候,我们将这个对话框show出来  
  46.         case DATE_DIALOG_ID:  
  47.             return new DatePickerDialog(this, dsl, mYear, mMonth, mDay);  
  48.               
  49.         default:  
  50.             break;  
  51.         }  
  52.         return null;  
  53.     }  
  54.       
  55.     @Override 
  56.     protected void onCreate(Bundle savedInstanceState) {  
  57.         super.onCreate(savedInstanceState);  
  58.         super.setContentView(R.layout.main);  
  59.         mTextView = (TextView)findViewById(R.id.myDisplayData);  
  60.         mButton = (Button)findViewById(R.id.ChangeData);  
  61.           
  62.         //通过获得一个日历对象,将当前的日期等到,给TextView设置一个默认的日期  
  63.         Calendar mCalendar = Calendar.getInstance();  
  64.         mYear = mCalendar.get(Calendar.YEAR);  
  65.         mMonth = mCalendar.get(Calendar.MONTH);  
  66.         mDay = mCalendar.get(Calendar.DAY_OF_MONTH);  
  67.           
  68.         mTextView.setText("当前日期:"+mYear + "-" + (mMonth+1) + "-" + mDay);  
  69.         mButton.setTextSize(20);  
  70.           
  71.         //设置一个监听器  
  72.         OnClickListener ol = new View.OnClickListener() {  
  73.               
  74.             @Override 
  75.             public void onClick(View v) {  
  76.                 // TODO Auto-generated method stub  
  77.                 showDialog(DATE_DIALOG_ID);  
  78.             }  
  79.         };  
  80.         //将监听器绑定到按钮上  
  81.         mButton.setOnClickListener(ol);  
  82.           
  83.     }  
  84.  
  85.     @Override 
  86.     public boolean onCreateOptionsMenu(Menu menu) {  
  87.         // Inflate the menu; this adds items to the action bar if it is present.  
  88.         getMenuInflater().inflate(R.menu.main, menu);  
  89.         return true;  
  90.     }  
  91.  
  92. }  

好,再加上工程的下载链接:

http://down.51cto.com/data/673824

你可能感兴趣的:(android,Datepicker)