Android 自學之日期DatePicker、時間TimePicker選取器

來源:互聯網
上載者:User

標籤:des   android   c   style   class   blog   

日期(DatePicker)、時間(TimePicker)是兩個比較易用的控制項,他們都是從幀布局FrameLayout派生而出的;他們在FrameLayout的基礎上提供了一些方法來擷取目前使用者所選擇的日期和時間;如果程式需要擷取日期和時間,則可以通過為DatePicker添加OnDateChangedListener進行監聽,為TimePicker添加OnTimeChangeListenter進行監聽來實現。

以一個讓使用者選擇日期和時間的例子來展示下他們的功能和用法。

 layout/main.xml:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:orientation="vertical" 4     android:layout_width="fill_parent" 5     android:layout_height="fill_parent" 6     > 7  8 <!-- 顯示使用者輸入日期、時間的控制項 --> 9 <EditText android:id="@+id/show"10     android:layout_width="fill_parent" 11     android:layout_height="wrap_content"12     android:editable="false"13     android:cursorVisible="false"14     android:text="選擇購買本書的具體時間"15     />16 <!-- 定義一個DatePicker組件 -->17 <DatePicker android:id="@+id/datePicker"18     android:layout_width="match_parent" 19     android:layout_height="260dip"20     android:layout_gravity="center_horizontal"21     />22 <!-- 定義一個TimePicker組件 -->23 <TimePicker android:id="@+id/timePicker"24     android:layout_width="match_parent" 25     android:layout_height="160dip"26     android:layout_gravity="center_horizontal"27     />28     29 </LinearLayout>

上面的代碼裡面定義了三個組件:EditText 、日期、時間

主程式:com.example.choosedate.ChooseDate.java

 1 package com.example.choosedate; 2  3 import java.util.Calendar; 4  5 import android.support.v7.app.ActionBarActivity; 6 import android.support.v7.app.ActionBar; 7 import android.support.v4.app.Fragment; 8 import android.os.Bundle; 9 import android.view.LayoutInflater;10 import android.view.Menu;11 import android.view.MenuItem;12 import android.view.View;13 import android.view.ViewGroup;14 import android.widget.DatePicker;15 import android.widget.DatePicker.OnDateChangedListener;16 import android.widget.EditText;17 import android.widget.TimePicker;18 import android.widget.TimePicker.OnTimeChangedListener;19 import android.os.Build;20 21 public class ChooseDate extends ActionBarActivity {22 23     //定義5個記錄目前時間的變數24     private int year;25     private int month;26     private int day;27     private int hour;28     private int minute;29     30     @Override31     protected void onCreate(Bundle savedInstanceState) {32         super.onCreate(savedInstanceState);33         setContentView(R.layout.main);34         //獲得組件35         DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);36         TimePicker timePicker = (android.widget.TimePicker) findViewById(R.id.timePicker);37         38         //擷取當前的年、月、日、小時、分鐘39         Calendar c = Calendar.getInstance();40         year = c.get(Calendar.YEAR);41         month = c.get(Calendar.MONTH);42         day = c.get(Calendar.DAY_OF_MONTH);43         hour = c.get(Calendar.HOUR);44         minute = c.get(Calendar.MINUTE);45         46         //初始化datePicker組件,並指定監聽器47         datePicker.init(year, month, day, new OnDateChangedListener() {48             49             @Override50             public void onDateChanged(DatePicker view, int year, int month,51                     int day) {52                 ChooseDate.this.year = year;53                 ChooseDate.this.month = month;54                 ChooseDate.this.day = day;55                 56                 //顯示當前日期、時間57                 showDate(year, month , day , hour, minute);58             }59         });60         61         //初始化timePicker組件指定監聽器62         timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {63             64             @Override65             public void onTimeChanged(TimePicker view, int hour, int minute) {66                 ChooseDate.this.hour = hour;67                 ChooseDate.this.minute = minute;68                 //顯示當前日期、時間69                 showDate(year, month , day , hour, minute);70             }71         });72             73     }74     75     //定義在EditText中顯示當前日期、時間的方法76     private void showDate(int year, int month , int day77             , int hour , int minute)78     {79         EditText show = (EditText)findViewById(R.id.show);80         show.setText("日期:" + year + "年" + month + "月"81             + day + "日  " + hour + "時" + minute + "分");82     }83 }

1:選擇前

2:選擇後

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.