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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章