Android筆記——date&time(日期時間選擇對話方塊)
TimePickerDialog(時間選擇對話方塊)
建立TimePickerDialog時間選擇對話方塊:
1.建立一個類繼承DialogFragement
2.重寫onCreateDialog()方法,返回一個TimePickerDialog對象
3.實現TimePickerDialog的OnTimeSetListener介面來接收一個回調,當使用者佈建時間
DatePickerDialog(日期選擇對話方塊)
建立DatePickerDialog日期選擇對話方塊:
1.建立一個類繼承DialogFragment
2.重寫onCreateDialog()方法,返回一個TimePickerDialog對象
3.實現DatePickerDialog的OnDateSetListener介面來接收一個回調,當使用者佈建日期
DatePickerDialog和TimePickerDialog是Android提供的可以彈出一個日期、時間選擇的對話方塊,我們可以在程式中通過執行個體化DatePickerDialog和TimePickerDialog來得到一個日期、時間對話方塊。這兩個類都是AlertDialog的子類
我提供了一個百度的關於Picker的官方說明,可能對理解這篇文章有協助:http://wenku.baidu.com/link?url=U77TPsl99lpf8QrGD2h6XKA6xJqzk-JseCnJhC9VmgYoWckhCZ8-3F3TzOkOZGLverjwt6JitlhW-wWMODAOQLtEpVxryaZxNlCQstOjLCK
點擊開啟連結
源碼:
html
java
import java.util.Calendar;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.DialogFragment;import android.app.TimePickerDialog;import android.text.format.DateFormat;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;@SuppressLint({ "NewApi", "ValidFragment" })public class MainActivity extends Activity {private Button btnSetTime;private TextView tv_setTime;private TextView tv_setDate;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); //執行個體化對象,通過findViewById和相應的xml布局組件綁定 btnSetTime = (Button) findViewById(R.id.button1_settime);tv_setTime = (TextView) findViewById(R.id.tv_settime);tv_setDate = (TextView) findViewById(R.id.tv_setdate);}//設定日期事件處理方法public void setDateClick(View v){SetDateDialog sdt = new SetDateDialog();sdt.show(getFragmentManager(), "datePicker");}//設定時間事件處理方法public void setTimeClick(View v){SetTimeDialog std = new SetTimeDialog();std.show(getFragmentManager(), "timePicker");}public boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}//建立日期選擇對話方塊class SetDateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener{public Dialog onCreateDialog(Bundle savedInstanceState) { //Calendar 是一個抽象類別,是通過getInstance()來獲得執行個體,設定成系統預設時間 final Calendar c = Calendar.getInstance();//擷取年,月,日 int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int day= c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dpd = new DatePickerDialog(getActivity(), this, year, month, day);return dpd;}public void onDateSet(DatePicker view, int year, int month, int day) {tv_setDate.setText(year+"年"+(month+1)+"月"+day+"日");}}//建立時間選擇對話方塊@SuppressLint("NewApi") class SetTimeDialog extends DialogFragment implements TimePickerDialog.OnTimeSetListener{@SuppressLint("NewApi")public Dialog onCreateDialog(Bundle savedInstanceState) {//擷取小時,分鐘 final Calendar c = Calendar.getInstance();int hour = c.get(Calendar.HOUR_OF_DAY);int minute = c.get(Calendar.MINUTE); TimePickerDialog tpd = new TimePickerDialog(getActivity(),this,hour, minute, DateFormat.is24HourFormat(getActivity()));return tpd;}public void onTimeSet(TimePicker view, int hourOfDay, int minute){tv_setTime.setText(hourOfDay+":"+minute);}}}
效果展示: