856
京東網上商城
7.1.2 DatePicker結合案例詳解
DatePicker是Android的日期設置控件。DatePicker類的繼承圖如下:java.lang.Object
↳android.view.View
↳android.view.ViewGroup
↳android.widget.FrameLayout
↳android.widget.DatePicker
android.widget.DatePicker繼承了android.widget.FrameLayout框架布局類。DatePicker例子如圖7-7所示,從左到右是年、月、日的設置,改變年月日都會觸發OnDateChanged事件,當點擊“按鈕”可以獲得當前設置的時間。

圖7-7 DatePicker
請參考代碼清單7-6,完整代碼請參考chapter7_1工程中chapter7_DatePicker代碼部分。
【代碼清單7-6】
public class chapter7_DatePicker extends Activity {
private TextView mDateDisplay;
private DatePicker datePicker;
private Calendar c;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.datepicker_layout);
datePicker = (DatePicker) findViewById(R.id.datePicker);
c = Calendar.getInstance();
mDateDisplay = (TextView) findViewById(R.id.datetextview);
datePicker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c
.get(Calendar.DAY_OF_MONTH),
new DatePicker.OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mDateDisplay.setText("[" + year + "-"
+ (monthOfYear + 1) + "-" + dayOfMonth + "]"
+ "[" + view.getYear() + "-"
+ (view.getMonth() + 1) + "-"
+ view.getDayOfMonth() + "]");
}
});
button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mDateDisplay.setText(String.valueOf(datePicker.getYear())
+ " - " + String.valueOf(datePicker.getMonth() + 1)
+ " - " + String.valueOf(datePicker.getDayOfMonth()));
}
});
}
}
Calendar.getInstance()會獲得一個Calendar實例,這是一個日期實例,通過它的get(Calendar.YEAR)方法可以獲得年,get(Calendar.MONTH)方法加1獲得月, get(Calendar.DAY_OF_MONTH)方法獲得日期。DataPicker控件的核心代碼是init方法:
datePicker.init(c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {…}
在init方法中初始化DataPicker和事件的處理。
DataPicker的布局文件請參考代碼清單7-7,完整代碼請參考chapter7_1工程中datepicker_layout.xml代碼部分(chapter7_1/res/layout/datepicker_layout.xml)。
【代碼清單7-7】
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:andro
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<DatePicker android:
android:layout_width="wrap_content" android:layout_height="wrap_content">
</DatePicker>
<TextView android: android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="按鈕" android:
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
出自《Android開發案例驅動教程》第七章
最後更新:2017-04-02 06:51:46