一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android

 小小770 2013-12-16

前言

  這一篇博客分別講解Android平臺下,關于日期和時間的幾個相關控件。包括DatePicker(日期選擇控件)、TimePicker(時間選擇控件)、DatePickerDialog(日期選擇對話框)、TimePickerDialog(時間選擇對話框)、AnalogClock(模擬時鐘控件)、DigitalClock(數(shù)字時鐘控件)。對于時間控件,無非就是一個展示、修改、獲取等操作,下面一一講解。

 

DatePicker、TimePicker

  DatePicker、TimePicker都繼承自android.widget.FrameLayout,并且默認展示風格、與操作風格也類似。DatePicker用于展示一個日期選擇控件,TimePicker用于展示一個時間選擇控件。

  作為一個日期選擇控件,DatePicker可以通過設置屬性來確定日期選擇范圍,也可以通過定義好的方法獲取到當前選中的時間,并且在修改日期的時候,有響應的事件對其進行響應。

  DatePicker常用相關屬性:

  • android:calendarViewShown:是否顯示日歷。
  • android:startYear:設置可選開始年份。
  • android:endYear:設置可選結(jié)束年份。
  • android:maxDate:設置可選最大日期,以mm/dd/yyyy格式設置。
  • android:minDate:設置可選最小日期,以mm/dd/yyyy格式設置。

  DatePicker的方法而言,除了常用獲取屬性的setter、getter方法之外,還需要特別注意一個初始化的方法init()方法,用于做DatePicker控件的初始化,并且設置日期被修改后,回調(diào)的響應事件。此方法的簽名如下:

   init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)

  從上面的init()方法可以看到,DatePicker被修改時響應的事件是DatePicker.OnDateChangedListener事件,如果要響應此事件,需要實現(xiàn)其中的onDateChanged()方法,其中參數(shù)從簽名即可了解意思,這里不再累述。

   onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)

 

  作為一個時間選擇控件來說,TimePicker需要與時間相關的getter、setter方法之外,還需要有時間被修改夠,回調(diào)的響應事件。

  TimePicker常用方法有如下幾個:

  • is24HourView():判斷是否為24小時制。
  • setIs24HourView():設置是否為24小時制顯示。
  • getCurrentXxx():獲取當前時間。
  • setCurrentXxx():設置當前時間。
  • setOnTimeChangedListener():設置時間被修改的回調(diào)方法。

  TimePicker控件被修改的回調(diào)方法,通過setOnTimeChangedListener()方法設置,其傳遞一個TimePicker.OnTimeChangedListener接口,需要實現(xiàn)其中的onTimeChanged()方法。

  

   下面通過一個示例來講解這兩個控件的使用,在示例中分別展示了這兩個控件,并在其修改之后,把修改值通過Toast的方式展示到屏幕上。

  布局代碼:

復制代碼
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas./apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <DatePicker
 8         android:id="@+id/dpPicker"
 9         android:calendarViewShown="false"
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content" />
12 
13     <TimePicker
14         android:id="@+id/tpPicker"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content" />
17 
18 
19 </LinearLayout>
復制代碼

  實現(xiàn)代碼: 

復制代碼
 1 package com.bgxt.datatimepickerdemo;
 2 
 3 import java.text.SimpleDateFormat;
 4 import java.util.Calendar;
 5 
 6 import android.app.Activity;
 7 import android.os.Bundle;
 8 import android.widget.DatePicker;
 9 import android.widget.DatePicker.OnDateChangedListener;
10 import android.widget.TextView;
11 import android.widget.TimePicker;
12 import android.widget.Toast;
13 
14 public class DataTimePicker extends Activity {
15     private DatePicker datePicker;
16     private TimePicker timePicker;
17 
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_datatimepicker);
22 
23         datePicker = (DatePicker) findViewById(R.id.dpPicker);
24         timePicker = (TimePicker) findViewById(R.id.tpPicker);
25 
26         datePicker.init(2013, 8, 20, new OnDateChangedListener() {
27 
28             @Override
29             public void onDateChanged(DatePicker view, int year,
30                     int monthOfYear, int dayOfMonth) {
31                 // 獲取一個日歷對象,并初始化為當前選中的時間
32                 Calendar calendar = Calendar.getInstance();
33                 calendar.set(year, monthOfYear, dayOfMonth);
34                 SimpleDateFormat format = new SimpleDateFormat(
35                         "yyyy年MM月dd日  HH:mm");
36                 Toast.makeText(DataTimePicker.this,
37                         format.format(calendar.getTime()), Toast.LENGTH_SHORT)
38                         .show();
39             }
40         });
41 
42         timePicker.setIs24HourView(true);
43         timePicker
44                 .setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
45                     @Override
46                     public void onTimeChanged(TimePicker view, int hourOfDay,
47                             int minute) {
48                         Toast.makeText(DataTimePicker.this,
49                                 hourOfDay + "小時" + minute + "分鐘",
50                                 Toast.LENGTH_SHORT).show();
51                     }
52                 });
53 
54     }
55 }
復制代碼

  效果展示:

 

DatePickerDialog、TimePickerDialog

  DatePickerDialog、TimePickerDialog是兩個對話框控件,一個彈出對話框用于選擇日期,一個彈出對話框用于選擇時間,都繼承自android.app.AlertDialog。

  這兩個控件的開發(fā)過程,其主要就是開發(fā)其選擇后日期或時間后,相應的事件。

  對于DatePickeDialog而言,通過構(gòu)造函數(shù)可以設置彈出的日期控件的初始值,并且可以指定選中日期后,回調(diào)事件的實現(xiàn),構(gòu)造函數(shù)的簽名如下:

    DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

  其中DatePickerDialog.OnDateSetListener為日期選中的響應事件,其他為日期彈出窗口初始化的日期,對于一個OnDateSetListener接口而言,需要實現(xiàn)其中的onDateSet()方法,在這個方法內(nèi),可以得到用戶選中的日期。

  對于TimePickerDialog而言,同樣可以通過構(gòu)造函數(shù)設置初始值,并且設定選中日期后,回調(diào)事件的實現(xiàn),構(gòu)造函數(shù)的簽名如下:

    TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

  其中TimePickerDialog.OnTimeSetListener為時間選中的響應事件,其他為時間彈出窗口初始化的時間,對于一個OnTimeSetListener接口而言,需要實現(xiàn)其中的onTimeSet()方法,在這個方法內(nèi),可以得到用戶選中的時間。

 

AnalogClock、DigitalClock

   AnalogClock、DigitalClock為兩個時間展示控件,切只是展示的風格不同而已,沒有什么太大的區(qū)別。有一點值得注意的就是,這兩個控件展示的時間是無法修改的,僅為系統(tǒng)當前時間??词纠湍苊靼?,沒什么好詳細說的。

  下面通過一個例子說明一下DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock四個控件的使用。

  布局代碼:

復制代碼
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas./apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <TextView
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content"
10         android:text="指針時鐘:" />
11 
12     <AnalogClock
13         android:layout_width="fill_parent"
14         android:layout_height="wrap_content" />
15 
16     <TextView
17         android:layout_width="fill_parent"
18         android:layout_height="wrap_content"
19         android:text="數(shù)字時鐘:" />
20 
21     <DigitalClock
22         android:layout_width="fill_parent"
23         android:layout_height="wrap_content"
24         android:textSize="20dp" />
25     <Button
26         android:id="@+id/btnTimePickerDialog"
27         android:layout_width="fill_parent"
28         android:layout_height="wrap_content"
29         android:text="Show TimePickerDialog"
30          />
31     <Button
32         android:id="@+id/btnDatePickerDialog"
33         android:layout_width="fill_parent"
34         android:layout_height="wrap_content"
35         android:text="Show DatePickerDialog"
36          />
37 </LinearLayout>
復制代碼

  

  實現(xiàn)代碼:

復制代碼
 1 package com.bgxt.datatimepickerdemo;
 2 
 3 import android.app.Activity;
 4 import android.app.DatePickerDialog;
 5 import android.app.DatePickerDialog.OnDateSetListener;
 6 import android.app.TimePickerDialog;
 7 import android.app.TimePickerDialog.OnTimeSetListener;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12 import android.widget.DatePicker;
13 import android.widget.TimePicker;
14 import android.widget.Toast;
15 
16 public class AnalogDigitalClock extends Activity implements OnClickListener {
17     private Button btnDate, btnTime;
18 
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_anologdigital);
23         btnDate = (Button) findViewById(R.id.btnDatePickerDialog);
24         btnTime = (Button) findViewById(R.id.btnTimePickerDialog);
25         btnDate.setOnClickListener(this);
26         btnTime.setOnClickListener(this);
27     }
28 
29     @Override
30     public void onClick(View v) {
31         switch (v.getId()) {
32         case R.id.btnDatePickerDialog:
33             DatePickerDialog datePicker=new DatePickerDialog(AnalogDigitalClock.this, new OnDateSetListener() {
34                 
35                 @Override
36                 public void onDateSet(DatePicker view, int year, int monthOfYear,
37                         int dayOfMonth) {
38                     // TODO Auto-generated method stub
39                     Toast.makeText(AnalogDigitalClock.this, year+"year "+(monthOfYear+1)+"month "+dayOfMonth+"day", Toast.LENGTH_SHORT).show();
40                 }
41             }, 2013, 7, 20);
42             datePicker.show();
43             break;
44 
45         case R.id.btnTimePickerDialog:
46             TimePickerDialog time=new TimePickerDialog(AnalogDigitalClock.this, new OnTimeSetListener() {
47                 
48                 @Override
49                 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
50                     // TODO Auto-generated method stub
51                     Toast.makeText(AnalogDigitalClock.this, hourOfDay+"hour "+minute+"minute", Toast.LENGTH_SHORT).show();
52                 }
53             }, 18, 25, true);
54             time.show();
55             break;
56         }
57 
58     }
59 }
復制代碼

  效果展示:

  源碼下載

總結(jié)

   以上就講解了在Android平臺下,幾個與時間相關的控件,沒有什么特別的,注意設置與響應事件即可。

http://www.cnblogs.com/plokmju/p/android_DatePiceker.html

  請支持原創(chuàng),尊重原創(chuàng),轉(zhuǎn)載請注明出處。謝謝。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    精品午夜福利无人区乱码| 欧美日韩国产黑人一区| 婷婷亚洲综合五月天麻豆 | 欧美大胆美女a级视频| 成人日韩视频中文字幕| 欧美三级不卡在线观线看| 激情丁香激情五月婷婷| 黄男女激情一区二区三区| 国产av熟女一区二区三区四区| 激情内射亚洲一区二区三区| 久久福利视频在线观看| 亚洲精品福利入口在线| 人妻偷人精品一区二区三区不卡| 91久久国产福利自产拍| 亚洲中文字幕视频在线播放 | 欧美日韩国产欧美日韩| 国产一区二区三区丝袜不卡| 人妻亚洲一区二区三区| 日韩一区二区三区久久| 国产视频福利一区二区| 欧美一本在线免费观看| 人妻精品一区二区三区视频免精| 婷婷九月在线中文字幕| 精产国品一二三区麻豆| 亚洲午夜精品视频观看| 国产午夜精品久久福利| 国产一区二区精品高清免费 | 青青操日老女人的穴穴| 少妇淫真视频一区二区| 日韩亚洲激情在线观看| 欧美一级特黄特色大色大片| 国产欧美日韩视频91| 色婷婷成人精品综合一区| 日韩一区二区三区四区乱码视频| 亚洲精品有码中文字幕在线观看| 99久久无色码中文字幕免费| 91人妻丝袜一区二区三区| 日韩一区中文免费视频| 欧美日韩精品综合在线| 久久精品国产99精品亚洲| 午夜福利92在线观看|