Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android界面編程——日期時間組件(五)

Android界面編程——日期時間組件(五)

編輯:關於Android編程

2.6日期時間組件

2.6.1 TextClock

以文本的方式顯示系統日期和時間,可以自定義顯示格式,是 Android4.2(對應API Level 17)提供的新特性。TextClock有兩種格式設置方式:

1、在24小時模式:

屬性:android:format24Hour

方法:set Format24Hour(CharSequence)

2、在12小時模式:

屬性:android: format12Hour

方法:set Format12Hour (CharSequence)

 

下面就通過案例2.6-1,講解TextClock的用法,執行效果如圖2.6-1

\

圖2.6-1

\ \ \

2.6.2 AnalogClock

AnalogClock控件顯示模擬時鐘。它繼承了View組件,在View組件的基礎上重寫了onDraw方法,在OnDraw方法實現繪制模擬時鐘,但繪制了時針和分針沒有秒針。

表2.6-1列出了AnalogClock所支持的XML屬性。

表2.6-1AnalogClock所支持的XML屬性說明

XML屬性

備注

android:dial

設置模擬表盤的使用的圖片

android:hand_hour

設置模擬表盤時針使用的圖片

android:hand_minute

設置模擬表盤分針使用的圖片

 

下面就通過案例2.6-2,講解AnlogClock的基本用法,執行效果如圖2.6-2

 

\

圖2.6-2

\

2.6.3 DatePicker和TimePicker

DatePicker和TimePicker是 Android提供用於選擇一個時間和選擇一個日期的控件。

他們都繼承自FrameLayout,使用起來比較簡單。

使用DatePicker和TimePicker控件有助於確保用戶選擇一個時間或日期是有效的、格式正確。

TimePicker用於選擇的時間(小時,分鐘,上午/下午)的每個部分。

DatePicker用於選擇日期(月,日,年)的每個部分。

如圖2.6-3所示:

\

圖2.6-3

 

 

 

表2.6-2列出了DatePicker所支持的XML屬性。

表2.6-2 DatePicker所支持的XML屬性說明

XML屬性

備注

android:calendarViewShown

是否顯示CalendarView組件

android:spinnersShown

是否顯示Spinner組件

android:endYear

是否允許選擇最後一年

android:startYear

是否允許選擇第一年

android:maxDate

以MM / DD / yyyy格式顯示此日歷視圖的最大日期

android:minDate

以MM / DD / yyyy格式顯示此日歷視圖的最小日期

 

 

下面就通過案例2.6-3,講解AnlogClock的基本用法,執行效果如圖2.6-3

\

圖2.6-3

\ \ \ \
public class PickerActivity extends AppCompatActivity {
    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;
    private DatePicker datePicker;
    private TimePicker timePicker;

    @Override
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker arg0, int year, int month, int day) {
PickerActivity.this.year = year;
                PickerActivity.this.month = month;
PickerActivity.this.day = day;
                // 顯示當前時間和日期
                showDate(year, month, day, hour, minute);
            }
        });
        // 為TimerPicker指定事件監聽器
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker arg0, int hour, int minute) {
                PickerActivity.this.hour = hour;
                PickerActivity.this.minute = minute;
            }
        });
        showDate(year,month,day,hour,minute);
    }

    protected void showDate(int year, int month, int day, int hour,int minute) {
        EditText text = (EditText) findViewById(R.id.etShowDate);
        text.setText("選擇的日期和時間為:" + year + "年" + (month+1) + "月" + day + "日"
                + hour + "時" + minute+ "分");
    }
}

2.6.5 CalendarView

是一個日歷組件,用於顯示和選擇日期。日歷支持的范圍是可配置的。用戶可以選擇一個日期,也可以通過觸摸滾動來選擇所需的日期。

表2.6-3列出了CalendarView所支持的XML屬性。

表2.6-3 CalendarView所支持的XML屬性說明

 

XML屬性

方法

備注

android: dateTextAppearance

setDateTextAppearance(INT)

設置日歷控件日期文字的樣式

android:maxDate

setMaxDate(long)

以MM / DD / yyyy格式在此日歷視圖中顯示的最小日期

android:minDate

setMinDate(long)

以MM / DD / yyyy格式在此日歷視圖中顯示的最大日期

android:firstDayOfWeek

setFirstDayOfWeek(INT)

給日歷設置周的第一天

android:shownWeekCount

set ShownWeekCount(INT)

設置日歷總共顯示幾個周

android:selectedWeekBackgroundColor

 

setSelectedWeekBackgroundColor(INT)

 

設置已選擇的周的背景顏色

android:focusedMonthDateColor

 

setFocusedMonthDateColor

 

設置焦點月份的文字的顏色

android:weekSeparatorLineColor

 

setWeekSeparatorLineColor(INT)

 

設置周分割線的顏色

 

 

android:unfocusedMonthDateColor

 

setUnfocusedMonthDateColor(INT)

設置未選中月份的文字的顏色

下面就通過案例2.6-4,講解CalendarView的基本用法,執行效果如圖2.6-4。

 

 

\

圖2.6-4

\

\

 

public class CalendarViewActivity extends AppCompatActivity {
    private CalendarView cv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calendar_view);
        cv=(CalendarView)findViewById(R.id.calenddarView);
        initCalendarView();
    }
    private void initCalendarView(){
        //為CalendarView組件的日期改變事件添加事件監聽器
        cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year,
                                            int month, int dayOfMonth) {
                //使用Toast顯示用戶選擇的日期
                Toast.makeText(CalendarViewActivity.this,
                        "購票日期:" + year + "年" + month + "月" + dayOfMonth + "日"
                        , Toast.LENGTH_SHORT).show();
            }
        });
    }
}

案例關鍵點:

通過為CalendarView對象設置日期監聽OnDateChangeListener,並復寫回調方法onSelectedDayChange(),獲得用戶選擇的日期


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved