使用DatePickerDialog、TimePickerDialog

    DatePickerDialog與TimerPicker的功能比較簡單,用戶也簡單,只要以下兩步便可。java

    ①經過new關鍵字建立DatePickerDialog、TimePickerDialog實例,調用它們的show()方法便可將日期選擇對話框、時間選擇對話框顯示出來。android

    ②爲DatePickerDialog、TimePickerDialog綁定監聽器,這樣能夠保證用戶經過DatePickerDialog、TimePickerDialog設置事件時觸發監聽器,從而經過監聽器來獲取用戶設置的事件。app

    下面的程序中定義了兩個按鈕,一個按鈕用於打開日期選擇對話框,一個用於打開時間對話框。該程序的界面佈局文件以下:ide

   

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
     >
     <EditText android:id="@+id/show"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:editable="false"/>
     <LinearLayout 
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal">
         <Button android:id="@+id/dateBn" 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="設置日期"/>
         <Button android:id="@+id/timeBn" 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="設置時間"/>   
         
     </LinearLayout>
</LinearLayout>

對應的Activity後臺代碼文件以下:佈局

package org.crazyit.helloworld;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;

public class DateDialogTest extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.date_dialog_test);
        Button dateBn=(Button)findViewById(R.id.dateBn);
        Button timeBn=(Button)findViewById(R.id.timeBn);
        //爲「設置日期」按鈕綁定監聽器
        dateBn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Calendar c=Calendar.getInstance();
                //直接建立一個DatePickerDialog對話框實例,並將它顯示出來
                new DatePickerDialog(DateDialogTest.this, //綁定監聽器
                        new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub
                                EditText show=(EditText)findViewById(R.id.show); show.setText("您選擇啦:"+year+"年"+(month+1)+"月"+dayOfMonth+"日"); } },c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH)).show();             }
            
        });
        //爲「設置時間」按鈕綁定監聽器
        timeBn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Calendar c=Calendar.getInstance();
                //建立一個TimePickerDialog實例,並把它顯示出來
                new TimePickerDialog(DateDialogTest.this, //綁定監聽器
                        new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub
                                EditText show=(EditText)findViewById(R.id.show); show.setText("您選擇了:"+hourOfDay+"時"+minute+"分"); } } //設置初始時間
 ,c.get(Calendar.HOUR_OF_DAY) ,c.get(Calendar.MINUTE) //true表示採用24小時制
                        ,true).show();             }
            
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.date_dialog_test, menu);
        return true;
    }

}

上面的程序中兩段粗體字代碼就是建立並顯示DatePickerDialog、TimePickerDialog的關鍵代碼。運行上面的程序將會看到以下界面效果。
this

相關文章
相關標籤/搜索