2017-03-06 94 views
0

我正在使用Android CalendarView創建簡單的日曆應用程序。當用戶按下日曆視圖中的上一個或下一個按鈕時,我需要獲取月份。當用戶點擊這些按鈕時,CalendarView沒有任何方法來獲取月份,所以我嘗試使用以下代碼來提取月份。從CalendarView獲取月份Android

ViewGroup vg = (ViewGroup) calendarView.getChildAt(0); 
View subView = vg.getChildAt(0); 

,但由於某些原因,ViewGroup中持有DayPickerViewPager部件,和2 AppcompatImageButtons(前一個和下一個按鈕),但沒有TextView的或類似的東西保持實際的月份名稱。

該子視圖包含DayPickerViewPager。有誰知道我可以如何獲得前一個/下一個按鈕點擊的月份?

預先感謝您

+0

你不能得到加載到CalendarView中的'Calendar'對象嗎? –

+0

我試過調試並發現它,但是我沒有成功:/ –

回答

0

的CalendarView沒有任何方法來獲取一個月,當用戶點擊這些按鈕

我認爲它;至少當你選擇一個給定的日期。

long getDate()

獲取毫秒

您可以處理成Calendar對象,你可以從每月選定的日期。

參見:Java - Milliseconds to Month/Year (not just the current time)

我需要當用戶按下在日曆視圖

您需要使用setOnDateChangeListener捕捉是最後日期的上一個或下一個按鈕來獲得月選擇。

目前尚不清楚爲什麼當用戶尚未做出選擇時,您需要「下一個/上一個」按鈕的操作事件。

但是,它你做到了,那麼你將需要在AppCompatImageButtons這兩個setOnClickListener。但是,一旦你自己做了,你就會覆蓋現有的點擊監聽器。

+0

setOnDateChangeListener僅在從日曆中選擇日期時起作用。 getDate獲取所選日期。我已將自定義事件添加到我的日曆應用中。 事件存儲在數據庫中,我想按月查詢它們。這意味着如果用戶按下下一個按鈕,文本視圖將其文本設置爲當月的事件數量,並且回收站將填充標題,以便用戶可以簡單地滾動並點擊所需的事件。 –

+0

您是否需要整個CalendarView才能選擇月份?你可以創建自己的'MonthSelectionView'並定義你自己的監聽器。 –

+0

用戶也可以點擊日期,這會打開一個新的意圖。所以說我想爲4月7日舉辦一場活動。用戶將進入4月,然後點擊7日,這將打開一個表單的意圖,用戶輸入所需的數據,然後將其保存到數據庫。 –