本次视频是Android基础控件的最后一次结束,没有介绍到的控件,会在后续的视频学习。

  • 马上学Android 014 - ScrollView DatePicker TimePicker的简单使用

布局文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">


<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:background="#00BBFF">


<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">


<LinearLayout>
<!--其他代码-->
</LinearLayout>

<LinearLayout>
<!--其他代码-->
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">


<DatePicker
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/dpPicker"/>


<TimePicker
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tpPicker"
></TimePicker>


</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

需要说明的是,在ScrollView节点下面只能有一个子节点,例如本示例的LinearLayout。补充一下ScrollView常用的XML属性

属性 说明
android:scrollbarSize 设置滚动条的宽度。
android:scrollbarStyle 设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset
android:scrollbarThumbHorizontal 设置水平滚动条的drawable。
android:scrollbarThumbVertical 设置垂直滚动条的drawable.
android:scrollbarTrackHorizontal 设置水平滚动条背景(轨迹)的色drawable
android:soundEffectsEnabled 设置点击或触摸时是否有声音效果

DatePicker常用属性

属性 说明
android:calendarViewShown 是否显示日历。
android:startYear 设置可选开始年份。
android:endYear 设置可选结束年份。
android:maxDate 设置可选最大日期,以mm/dd/yyyy格式设置。
android:minDate 设置可选最小日期,以mm/dd/yyyy格式设置。

Java代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class SecondActivity extends Activity {

private DatePicker dpPicker;
private TimePicker tpPicker;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

dpPicker = (DatePicker) findViewById(R.id.dpPicker);
tpPicker = (TimePicker) findViewById(R.id.tpPicker);

//DatePicker初始化和绑定监听事件
dpPicker.setCalendarViewShown(false);
dpPicker.init(2014,2,15,new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int day) {
Toast.makeText(SecondActivity.this,"你选取的日期为"+year+"-"+(month+1)+"-"+day,Toast.LENGTH_SHORT).show();
}
});

tpPicker.setIs24HourView(true);
tpPicker.setCurrentHour(20);
tpPicker.setCurrentMinute(20);
tpPicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int i, int i2) {
Toast.makeText(SecondActivity.this,"你准备发的事件是:"+i+":"+i2,Toast.LENGTH_SHORT).show();
}
});
}
}

DatePicker需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。

TimePicker通过 setOnTimeChangedListener() 方法设置,其传递一个 TimePicker.OnTimeChangedListener 接口,需要实现其中的onTimeChanged()方法。

DatePicker和TimePicker的使用不算复杂,但是算蛮常见的属性,大家可以学起来备用哦~