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

时间:2022-05-02 18:09:21

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(数值选择器)
注:上下是可以滑动的。

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(数值选择器)

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(数值选择器)