Android custom calendar view disable specific dates

后端 未结 2 1397
暗喜
暗喜 2021-01-22 16:54

i\'m new to android developing and started to develop an booking app. There is a calendar view and i want to disable booked dates in that calendar. I found out that disabling fe

相关标签:
2条回答
  • 2021-01-22 17:44

    Include CalendarPickerView in your layout XML.

    <com.squareup.timessquare.CalendarPickerView
    android:id="@+id/calendar_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
    

    In the onCreate of your activity/dialog or the onCreateView of your fragment, initialize the view with a range of valid dates as well as the currently selected date.

    Calendar nextYear = Calendar.getInstance();
    nextYear.add(Calendar.YEAR, 1);
    
    CalendarPickerView calendar = (CalendarPickerView) findViewById(R.id.calendar_view);
    Date today = new Date();
    calendar.init(today, nextYear.getTime()).withSelectedDate(today);
    

    enter image description here

    github link- https://github.com/square/android-times-square

    0 讨论(0)
  • 2021-01-22 17:46
    i have faced the same problem using custom calendar ,
    i just overridden the function of adapter 
    
    
     @Override
        public boolean isEnabled(int position) {
             if(mySet.contains(position))
                return true;
            else
                return false;
        }
    
    
    then i call the function int the adapter view 
    
     isEnabled(position);
    
    
    
    
    befoer that tale Hashset and add the position which is displaying the calanderview 
    
    
               // mysetSize=set.size();
                //isEnabled(Integer.parseInt(gridvalue));
                Log.d(dayView.getTag()+"------1-------"+gridvalue,"-------"+position);
            } else if ((Integer.parseInt(gridvalue) < 7) && (position > 28)) {
                dayView.setTextColor(Color.WHITE);
                dayView.setClickable(false);
                dayView.setFocusable(false);
                Log.d("-------mySet------","-------"+mySet);
                Log.d(mysetSize+"-------28------"+gridvalue,"-------"+position);
                set.add(position);
    
            } else {
                // setting curent month's days in blue color.
                dayView.setTextColor(Color.DKGRAY);
                Log.d(dayView.getTag()+"-------current display post------","-------"+position);
                mySet.add(position);
            }
    
    0 讨论(0)
提交回复
热议问题