在代碼中用法:
PRivate void showDatePicker() { //獲取當前日期 Calendar calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH); day = calendar.get(Calendar.DAY_OF_MONTH); //創建并顯示DatePickerDialog DatePickerDialog dialog = new DatePickerDialog(this, Datelistener, year, month, day); dialog.show(); //只顯示年月,隱藏掉日 DatePicker dp = findDatePicker((ViewGroup) dialog.getWindow().getDecorView()); if (dp != null) { ((ViewGroup)((ViewGroup)dp.getChildAt(0)).getChildAt(0)) .getChildAt(2).setVisibility(View.GONE); //如果想隱藏掉年,將getChildAt(2)改為getChildAt(0) }}findDatePicker方法
private DatePicker findDatePicker(ViewGroup group) { if (group != null) { for (int i = 0, j = group.getChildCount(); i < j; i++) { View child = group.getChildAt(i); if (child instanceof DatePicker) { return (DatePicker) child; } else if (child instanceof ViewGroup) { DatePicker result = findDatePicker((ViewGroup) child); if (result != null) return result; } } } return null;}DateListener , new DatePickerDialog()時傳入
private DatePickerDialog.OnDateSetListener Datelistener=new DatePickerDialog.OnDateSetListener(){ /**params:view:該事件關聯的組件 * params:myyear:當前選擇的年 * params:monthOfYear:當前選擇的月 * params:dayOfMonth:當前選擇的日 */ @Override public void onDateSet(DatePicker view, int myyear, int monthOfYear, int dayOfMonth) { //修改year、month、day的變量值,以便以后單擊按鈕時,DatePickerDialog上顯示上一次修改后的值 year=myyear; month=monthOfYear; day=dayOfMonth; //更新日期 updateDate(); } //當DatePickerDialog關閉時,更新日期顯示 private void updateDate() { //在TextView上顯示日期 tvDate.setText(year+"年"+(month+1)+"月"); }};新聞熱點
疑難解答