android DatePicker
為什么80%的碼農都做不了架構師?>>> ??
public class?DatePicker?extends?FrameLayout
java.lang.Object
android.view.View
??????????android.view.ViewGroup
????????????????????android.widget.FrameLayout
????????????????????????android.widget.DatePicker
DatePicker ??一個選擇年月日的日歷布局視圖
公共方法
public int getDayOfMonth ()
獲取選擇的天數
public int getMonth ()
獲取選擇的月份。(注意:返回數值為0..11,需要自己+1來顯示)
public int getYear ()
獲取選擇的年份
public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
初始化狀態。(譯者注:初始化年月日)
參數
year 初始年(譯者注:注意使用new Date()初始化年時,需要+1900,如下:date.getYear() + 1900)
monthOfYear 初始月。
dayOfMonth 初始日。
onDateChangedListener 日期改變時通知用戶的事件監聽,可以為空(null)。
public void setEnabled (boolean enabled)
設置視圖的啟用狀態。該啟用狀態隨子類的不同而有不同的解釋。
參數
enabled True if this view is enabled, false otherwise.設置為true表示啟動視圖,反之禁用。
public void updateDate (int year, int monthOfYear, int dayOfMonth)
更新日期
受保護方法
protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container)
重寫使我們能夠完全控制這小部件的保存或恢復。(譯者注:此處直接調用了父類的ViewGroup. dispatchThawSelfOnly方法)
參數
container SparseArray 持有保存以前的狀態。The SparseArray which holds previously saved state.
protected void onRestoreInstanceState (Parcelable state)
允許視圖重新應用以前通過onSaveInstanceState()生成代表內部的狀態。這個函數決不調用一個空的狀態。
參數
state 返回以前調用onSaveInstanceState()保存下來的狀態。
protected Parcelable onSaveInstanceState ()
允許視圖生成一個代表內部的狀態,以后可用于創建一個與之相同的新的實例。這種狀態應該只包含非持久或以后不能夠重建的信息。例如,你決不存儲你當前在屏幕上的位置,因為這會在視圖的層面上重新計算放置一個新的實例。
你可以存儲到這里的一些例子:一個文本框中當前光標的位置(但通常不是文字本身,文字通常保存在內容提供者(content provider)或其他持久的儲存中),一個列表視圖中的當前選中項。
返回值
返回一個包含視圖當前狀態的Parcelable對象,或沒有什么狀態保存時返回null。默認實現返回null。
=======================
案例一:
1:定義布局文件資源datepicker.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="fill_parent" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 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:gravity="center_horizontal" android:text="選擇時間" /> <DatePicker android:id="@+id/datepicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <TimePicker android:id="@+id/timepicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <EditText android:id="@+id/et" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false" android:cursorVisible="false" /> </LinearLayout> </ScrollView>2.定義java文件:DatePickerDemo.java package com.test;import java.util.Calendar;import android.app.Activity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.EditText; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener;public class DatePickerDemo extends Activity {private int year; private int month; private int day; private int hour; private int minute; private EditText editText;/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.datepicker); DatePicker datapicker = (DatePicker)findViewById(R.id.datepicker); TimePicker timepicker =(TimePicker)findViewById(R.id.timepicker); editText = (EditText) findViewById(R.id.et); Calendar c =Calendar.getInstance(); year =c.get(Calendar.YEAR); month=c.get(Calendar.MONTH); day=c.get(Calendar.DAY_OF_MONTH); hour = c.get(Calendar.HOUR); minute =c.get(Calendar.MINUTE); datapicker.init(year, month, day, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { DatePickerDemo.this.year=year; DatePickerDemo.this.month=monthOfYear; DatePickerDemo.this.day=dayOfMonth; showDate(year,month,day,hour,minute); } }); timepicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub DatePickerDemo.this.hour=hourOfDay; DatePickerDemo.this.minute=minute; } }); } private void showDate(int year, int month, int day, int hour,int minute) { editText.setText(year+"年"+month+"月"+day+"日"+hour+"時"+minute+"分"); } }
3:執行效果:
轉載于:https://my.oschina.net/amigos/blog/66072
總結
以上是生活随笔為你收集整理的android DatePicker的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse开发Android程序如何
- 下一篇: shell比较运算符