各种杂项组件(3)之--CalendarView(日历视图)、DatePicker/TimePicker(日期、时间选择器)、NumberPicker(数值选择器)

    • CalendarView日历视图
      • 概述
      • 示例
    • DatePickerTimePicker日期时间选择器
      • 概述
      • 用法
      • 示例
    • NumberPicker数值选择器
      • 概述
      • 用法

CalendarView(日历视图):

注:API level 需在11以上,

1.概述:

用于显示和选择日期,如果希望监控改组件的日期改变,可以通过调用CalendarView的setOnDateChangeListener()方法。

2.示例:

1>布局文件中添加CalendarView控件:

<CalendarView 
     android:id="@+id/calendar"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:shownWeekCount="4"
     android:firstDayOfWeek="3" 
     android:selectedWeekBackgroundColor="#f00"
     android:weekSeparatorLineColor="#ff0"
     android:unfocusedMonthDateColor="#f9f"             
     />


shownWeekCount=”4” //设置该日历组件总共显示4个星期
firstDayOfWeek=”3” //设置以每周的星期二作为第一天
selectedWeekBackgroundColor=”#f00” //设置被选中的周的背景色
unfocusedMonthDateColor=”#f9f” //设置没有焦点的月份的日期文字的颜色
weekSeparatorLineColor=”#ff0” //设置周分隔线的颜色


2>在activity中为该控件添加点击事件

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mCalendar = (CalendarView) findViewById(R.id.calendar);
        mCalendar.setOnDateChangeListener(new OnDateChangeListener() {//对日历添加点击事件

            @Override
            public void onSelectedDayChange(CalendarView arg0, int year, int month,
                    int day) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "选中的时间是:"+year+"年"+(month+1)+"月"+day+"日", Toast.LENGTH_SHORT).show();
            }
        });
    }

3>结果演示:
各种杂项组件(3)之--CalendarView(日历视图)、DatePicker/TimePicker(日期、时间选择器)、NumberPicker(数值选择器)_第1张图片
注:上下是可以滑动的。

DatePicker/TimePicker(日期、时间选择器)

1.概述:

DatePicker和TimePicker是两个比较易用的控件,它们是从FrameLayout派生而来的。
DatePicker是供用户选择日期的,而TimePicker是供选择时间的。

2.用法:

1>xml属性:
calendarViewShown —-设置该日期选择是够显示CalendarView组件
startYear——-设置日期选择器允许的选择的第一年
endYear——-设置日期选择器允许的选择的最后一年
maxDate——设置最大日期
minDate——设置最小日期
spinnersShown——设置是否显示Spinner日期选择组件

<DatePicker 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:calendarViewShown="true"
        android:startYear="2000"
        android:endYear="2020"
        android:maxDate="11/20/2020"
        android:minDate="11/20/2000"
        android:spinnersShown="true"
        />

2>监听事件:
DatePicker可以添加OnDateChangeListener()进行监听。
TimePicker可以添加OnTimerChangedListener()进行监听。

3.示例:

各种杂项组件(3)之--CalendarView(日历视图)、DatePicker/TimePicker(日期、时间选择器)、NumberPicker(数值选择器)_第2张图片

NumberPicker(数值选择器)

1.概述:

数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值。

2.用法:

1>xml属性:
不是特有的
android:focusable=”true” //设置可点击
android:focusableInTouchMode=”true”
2>要使其有功能,必须在activity中,设置其最大,最小值,以及点击事件的监听。
设置最大、最小值:

mCalendar = (CalendarView) findViewById(R.id.calendar);
picker = (NumberPicker) findViewById(R.id.numpicker);
picker.setMinValue(10);//设置该组件支持的最小值
picker.setMaxValue(100);//设置最大值
picker.setValue(30); //设置当前值

绑定监听事件:setOnValueChangedListener()

picker.setOnValueChangedListener(new OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker arg0, int oldVal, int newVal) {
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(), "将"+oldVal+"换成"+newVal, Toast.LENGTH_SHORT).show();

    }
});

结果:
各种杂项组件(3)之--CalendarView(日历视图)、DatePicker/TimePicker(日期、时间选择器)、NumberPicker(数值选择器)_第3张图片

你可能感兴趣的:(Android,日历)