2016-04-05 122 views
0

因此,我需要用戶從DatePicker對話框中選擇日期,然後當他選擇日期時,我希望它在日曆上顯示。例如,如果用戶選擇01/01/2016我希望該日期顯示爲紅色標記日期。將用戶從DatePicker選擇日期設置爲日曆

這裏是我的代碼:

displayDatumaDodajPisaniIspit = (TextView)dialog. findViewById(R.id.displayDatumaDodajPisaniIspit); 
          set = (Button)dialog. findViewById(R.id.set); 
          set.setOnClickListener(new View.OnClickListener() { 
           @Override 
           public void onClick(View v) { 
            new DatePickerDialog(HomeScreen.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 
           } 
          }); 

與聽者

DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     displayDatumaDodajPisaniIspit.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
     calendarView.setDateSelected(); 
    } 

}; 

我不知道如何開始使用它。在聽者中嘗試了一些方法,但沒有奏效。

+0

你應該使用由Ca提供的setDate方法lendarView:http://developer.android.com/reference/android/widget/CalendarView.html#setDate%28long%29 – chRyNaN

+0

我沒有setDate,我有setDateSelected,setCurrentDate,setMaximumDate,setMinimumDate,setSelectedDate – DaxHR

+0

然後你是不是特定使用哪個CalendarView。這是CalendarView文檔:developer.android.com/reference/android/widget/CalendarView.html – chRyNaN

回答

1

你應該首先將選定的日期爲米利斯 -

Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.YEAR, year); 
    calendar.set(Calendar.MONTH, monthOfYear); 
    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 

    long millis = calendar.getTimeInMillis(); 

,然後設定日期在CalendarView這樣的 -

calendarView.setDate(millis); 

至於你提到你正在使用MaterialCalendarView,那麼我想你可以使用 -

calendarView.setSelectedDate(CalendarDay.from(year,monthOfYear,dayOfMonth)); 
+0

謝謝你響應。我使用https://github.com/prolificinteractive/material-calendarview,而不是股票CalendatView,所以setDate不適合我 – DaxHR

+0

setDateSelected()的簽名是什麼? –

+0

日曆日曆,布爾選中 – DaxHR

相關問題