天天看點

android日期篩選_Android開發筆記:日期/時間選擇器

本章記錄日期與時間選擇器各自對應的兩種實作方式:隐式/顯式,隐式為未點選時隐藏,顯式為始終占用。

一、日期選擇器

1.1 顯式:使用DatePicker

①布局頁面為DatePicker+Button

android:id="@+id/dp_dickdate"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/btn_yesdate"

android:layout_width="match_parent"

android:layout_height="50dp"

android:text="确定"

android:gravity="center"

android:textSize="20sp"/>

②控件的綁定

dp_dickdate = (DatePicker)findViewById(R.id.dp_dickdate);

findViewById(R.id.btn_yesdate).setOnClickListener(this);

③點選後直接使用其對應的方法getYear()、getMonth()、getDayOfMonth()即可

String desc = String.format("選中日期%d年%d月%d日",dp_dickdate.getYear(),dp_dickdate.getMonth()+1,dp_dickdate.getDayOfMonth());

tv_disdate.setText(desc);

④實作效果

android日期篩選_Android開發筆記:日期/時間選擇器

1.2 隐式:使用Calendar

①布局頁面隻用一個按鈕

android:id="@+id/btn_chooseDate"

android:layout_width="match_parent"

android:layout_height="50dp"

android:text="選擇日期"

android:gravity="center"

android:textSize="20sp"/>

②頁面代碼需要實作接口implementsDatePickerDialog.OnDateSetListener,并實作函數onDateSet

public void onDateSet(DatePicker dp,int year,int month,int day){

String desc = String.format("選中日期%d年%d月%d日",year,month+1,day);

tv_disdate.setText(desc);

}

③在點選按鈕後響應如下:

if(view.getId()==R.id.btn_chooseDate){

//擷取執行個體,包含目前年月日

Calendar calendar = Calendar.getInstance();

DatePickerDialog dialog = new DatePickerDialog(this,this,

calendar.get(Calendar.YEAR),

calendar.get(Calendar.MARCH),

calendar.get(Calendar.DAY_OF_MONTH));

dialog.show();

}

④實作效果

android日期篩選_Android開發筆記:日期/時間選擇器

二、時間選擇器

2.1 顯式:使用TimePicker

①布局頁面為TimePicker+Button

android:id="@+id/tp_time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/btn_yestime"

android:layout_width="match_parent"

android:layout_height="50dp"

android:textSize="20sp"

android:text="确定"

android:gravity="center"/>

②控件綁定

btn_yestime = (Button)findViewById(R.id.btn_yestime);

tp_time = (TimePicker)findViewById(R.id.tp_time);

btn_yestime.setOnClickListener(this);

③确認選擇後顯示時間

if(view.getId()==R.id.btn_yestime){

String desc = String.format("選擇時間%d時%d分",tp_time.getCurrentHour(),tp_time.getCurrentMinute());

tv_distime.setText(desc);

}

④實作效果

android日期篩選_Android開發筆記:日期/時間選擇器

2.2 隐式:使用Calendar

①頁面布局也隻用一個按鈕

android:id="@+id/btn_choosetime"

android:layout_width="match_parent"

android:layout_height="50dp"

android:gravity="center"

android:text="選擇時間"

android:textSize="20sp"/>

②同樣,要實作接口TimePickerDialog.OnTimeSetListener的onTimeSet函數

public void onTimeSet(TimePicker tp,int hour,int minute){

String desc = String.format("您選擇%d時%d分",hour,minute);

tv_distime.setText(desc);

}

③點選按鈕後響應事件

if(view.getId()==R.id.btn_choosetime){

Calendar calendar = Calendar.getInstance();

TimePickerDialog dialog = new TimePickerDialog(this,this,

calendar.get(Calendar.HOUR_OF_DAY),

calendar.get(Calendar.MINUTE),

true);

dialog.show();

}

④實作效果

android日期篩選_Android開發筆記:日期/時間選擇器