2017-01-23 117 views
2

我想在CardView 上顯示特定的月份,而不需要下一個和上一個箭頭來瀏覽日曆。如果我想要顯示2010年2月用戶必須只能看到2010年2月。他們不能去下一個月或上個月。如何僅在Android CalendarView上顯示特定月份?

我跟着this堆棧溢出答案顯示一個特定的月份,但它不適合我。它顯示所有的時間,我的情況下的當前日期和月份。我不確定是否可以或不禁用NEXT-PREVIOUS導航。

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="megaminds.dailyeditorialword.Fragments.CalendarViewFragment"> 

<CalendarView 
    android:id="@+id/calendarViewT" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:firstDayOfWeek="7"> 

</CalendarView> 

我的片段類onCreateView

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_calendar_view, container, false); 

    int year = 2010, month = 2, day = 1; 

    CalendarView calendarView = (CalendarView) view.findViewById(R.id.calendarViewT); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(year, month, day); //want to show full month of February 2010 

    calendarView.setMinDate(calendar.getTimeInMillis()); 

    return view; 
} 

我怎麼能只顯示二月一個月沒有下一個導航?

回答

2
Calendar febFirst=Calendar.getInstance(); 

febFirst.set(2017, 1, 1, 0, 0, 0); 

calendar.setMinDate(febFirst.getTimeInMillis()); 

Calendar febLast=Calendar.getInstance(); 

febLast.set(2017, 2, 0, 0, 0, 0); 

calendar.setMaxDate(febLast.getTimeInMillis()); 
calendar.setDate(febFirst.getTimeInMillis()); 

其中calendarCalendarView

CalendarView, locked to February 2017, on Nexus 5 running Android 6

+0

非常感謝。工作正常。另一個問題, 此處始終標記該月的第一個日期。我可以禁用它嗎?如果我顯示當前月份,日期選擇器將選擇當前日期。如果我顯示另一個月份(不是當前月份),則選擇器不應默認選擇第一個日期。可能嗎? –

+1

@HasanAbdullah:「這裏總是標記當月的第一個日期」 - 不,它標記你通過'setDate()'請求的日期。 「我可以禁用它嗎?」 - 不是我所知道的,因爲'CalendarView'的意思是讓用戶選擇一個日期。也許正確的答案是你不要使用'CalendarView',而是使用[一些更符合你想要的功能集的庫](https://android-arsenal.com/tag/27)。 – CommonsWare

1
int day = 16; 
int month =8; 
int year =2017; 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.YEAR, year); 
calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, day); 
    long milliTime = calendar.getTimeInMillis(); 
mCalendarView.setDate (milliTime, true, true); 

這裏mCalendarView是Android日曆視圖

+0

它顯示了具有NEXT和PREVIOUS按鈕的特定月份。 –

+0

@HasanAbdullah您可以使用Android自定義日曆視圖獲取更多樣式,您可以使用下一個和上一個按鈕 – Shaahul

相關問題