不用在界面中添加任何的標簽,直接在要顯示時間的地方進行點擊事件,
Calendar calendar = Calendar.getInstance();
final DatePickerDialog dialog = new DatePickerDialog(mContext,R.style.MyDatePickerDialogTheme, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog1, int which) {
int year = dialog.getDatePicker().getYear();
int month = dialog.getDatePicker().getMonth()+1;
int day = dialog.getDatePicker().getDayOfMonth();
String dateStr = year + "年" + month + "月" + day+"日";
check_in_text.setText(dateStr);
}
});
dialog.show();
break;
這部分就是點擊事件之后彈出的具體選擇日期的標簽頁,同時也可以將具體的選擇之后的時間進行賦值展示,
不過要注意時間中月份的賦值,該部分比較特殊,需要理解,獲取到的月份比實際的要小1,
針對不同的Android手機來說,主題顏色不一致,針對的對應的界面顏色也是不一致的,為了統一主題背景我們在values文件夾下的style.xml文件中添加一下主題背景
pasting
<!--用於日歷標簽主題背景色-->
<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="android:colorAccent">@color/color_bg_selected</item>
</style>
選取相應的背景顏色,最后實現多個手機之間的共通,
下面是針對日期選擇器選擇的時間,進行確認,最終的兩個時間節點之間的天數是幾天,為了一致我們進行了如下的計算方法Intent intent = new Intent(mContext,OrderHotelActivity.class);
intent.putExtra("hotelHouse" , data.get(position));
intent.putExtra("hotelTitle" , hotelBean.getTitle());
//判斷具體的入住天數
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf= new SimpleDateFormat("yyyy年MM月dd日");
try {
Date start = sdf.parse(check_in_text.getText().toString());
Date end = sdf.parse(check_out_text.getText().toString());
cal.setTime(start);
long time1 = cal.getTimeInMillis();
cal.setTime(end);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
intent.putExtra("bookTime" , check_in_text.getText()+"-"+check_out_text.getText()+" 共"+Integer.parseInt(String.valueOf(between_days))+"晚");
intent.putExtra("bookTimeNum" , 1);
if(CommonUtils.getUserInfo(mContext) == null){
intent = new Intent(mContext,LoginActivity.class);
intent.putExtra("from" , TAG);
intent.putExtra("objId" , id);
}
startActivity(intent);
} catch (ParseException e) {
e.printStackTrace();
}最終的版本是成功的,要注意的就是日期選擇器顯示的時候,有可能會因為主題原因導致確定和取消按鈕不顯示,所以要在后面設置主題樣式