Pro Android學習筆記(十七):使用者介面和控制(5):日期和時間控制項

來源:互聯網
上載者:User

DatePicker和TimePicker控制項

使用DatePicker和TimePicker,故名思議,使用者可以對時間進行選擇。XML代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...... >
    <TextView ......  android:id="@+id/ui_date1"/>
    <DatePicker android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ui_datepick"/>

    <TextView ......  android:id="@+id/ui_time1"/>
    <TimePicker android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ui_timepick"/>  
</LinearLayout>

如果我們不在代碼中設定日期和時間的值,初始時,DatePiker和TimePiker將設定為當前日期和時間。對於這兩個控制項,在代碼中,我們可以它們進行讀寫操作。對於日期有:

TextView dateText = (TextView)findViewById(R.id.ui_date1);
dateText.setText("Set default date to 2013/1/1");
DatePicker dp = (DatePicker)findViewById(R.id.ui_datepick);
//對DatePicker進行設定,使用dp.init(year, monthOfYear, dayOfMonth, onDateChangedListener) ,需要注意,月份的有效值是“0-11”,例如dp.init(2013, 1, 1, null);  則是設定2013.2.1 。
dp.init(2013,0,1,new DatePicker.OnDateChangedListener() {            
    //通過onDateChangedListener對日期發生變化進行觸發
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        //注意:會被觸發兩次。由於Picker實際上包含日曆和日期轉盤兩部分(會自動同步),日曆和日期變化產生兩次觸發。但日曆變化可以自動使日期變化,即則通過日曆的日期變化只觸發一次。
        Log.d("UiDateTimeTest","set Date to " + year+ "." + (monthOfYear+1)+"."+dayOfMonth);
       
    }
});
dp.setCalendarViewShown(false);    //不顯示日曆部分,只顯示日期轉盤部分   

對於時間:

//設定時間發生變化的處理 
TimePicker.OnTimeChangedListener timeChangedFunc = new TimePicker.OnTimeChangedListener() {   
    @Override
    public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 
        Log.d("UiDateTimeTest","Set time to "+hourOfDay + ":" + minute);
    }
};

TextView timeText = (TextView)findViewById(R.id.ui_time1); 
timeText.setText("Set default time to 16:00");
TimePicker tp = (TimePicker)findViewById(R.id.ui_timepick);
tp.setIs24HourView(true); 
tp.setCurrentHour(16); 
tp.setCurrentMinute(0); 
tp.setOnTimeChangedListener(timeChangedFunc);
//這裡用匿名類方式時,Eclipse顯示錯誤,所以本例直接用對象

DigitalClock和AnalogClock控制項

數字時鐘和類比時鐘。和其他的空間不同,我們不能對它所顯示的時間進行修改,它們將顯示系統的即時時間。使用它們的一個方便是,我們不需要進行代碼編寫,它們可以自動地不斷地進行同步和更新時間。XML如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout …… >
    <DigitalClock android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <AnalogClock android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>   
</LinearLayout>

相關連結:
我的Android開發相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.