DatePicker:就是日期選擇器,本文是設置了一個文本框和一個按鈕,按鈕的作用是用來改變日期的,文本框是用來顯示設置的日期的。
先看效果圖:
這是開始畫面,第一個是文本框,第二個是個按鈕
當點擊按鈕的時候跳出一個對話框,這個對話框是系統格式的,後面的文章將會介紹自定義對話框的。
設置日期:
日期修改之後器顯示在文本框上:
layout文件中的xml文件:
這裏就設置了一個文本框和一個按鈕
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- >
- <TextView
- android:id="@+id/myDisplayData"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="當前日期:" />
- <Button
- android:id="@+id/ChangeData"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="改變日期"
- />
- </LinearLayout>
Activatity.java文件:
在日期設置中要注意一點,系統中月是從0到11,所以每次獲得的日期中的月要加1。
- package com.cheng.datacontrol;
- import java.util.Calendar;
- import android.os.Bundle;
- import android.R.integer;
- import android.app.Activity;
- import android.app.DatePickerDialog;
- import android.app.DatePickerDialog.OnDateSetListener;
- import android.app.Dialog;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.DatePicker.OnDateChangedListener;
- import android.widget.TextView;
- public class DataControlActivity extends Activity {
- private TextView mTextView;
- private Button mButton;
- private int mYear;
- private int mMonth;
- private int mDay;
- //設置對話框ID
- private final int DATE_DIALOG_ID = 0;
- //這是個回調函數,當用戶修改日期的時候將會調用這個函數
- private OnDateSetListener dsl = new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(DatePicker view, int year, int monthOfYear,
- int dayOfMonth) {
- // TODO Auto-generated method stub
- mYear = year;
- mMonth = monthOfYear;
- mDay = dayOfMonth;
- //獲得用戶更改的日期,我們將它設置到我們的Textview上面,顯示出來
- mTextView.setText(mYear + "-" + (mMonth+1) + "-" + mDay);
- }
- };
- //重寫創建對話框方法
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- //創建一個日期修改的對話框,當按鈕按下的時候,我們將這個對話框show出來
- case DATE_DIALOG_ID:
- return new DatePickerDialog(this, dsl, mYear, mMonth, mDay);
- default:
- break;
- }
- return null;
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- super.setContentView(R.layout.main);
- mTextView = (TextView)findViewById(R.id.myDisplayData);
- mButton = (Button)findViewById(R.id.ChangeData);
- //通過獲得一個日曆對象,將當前的日期等到,給TextView設置一個默認的日期
- Calendar mCalendar = Calendar.getInstance();
- mYear = mCalendar.get(Calendar.YEAR);
- mMonth = mCalendar.get(Calendar.MONTH);
- mDay = mCalendar.get(Calendar.DAY_OF_MONTH);
- mTextView.setText("當前日期:"+mYear + "-" + (mMonth+1) + "-" + mDay);
- mButton.setTextSize(20);
- //設置一個監聽器
- OnClickListener ol = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- showDialog(DATE_DIALOG_ID);
- }
- };
- //將監聽器綁定到按鈕上
- mButton.setOnClickListener(ol);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
好,再加上工程的下載鏈接: