日历左键和右键单击月份箭头根据android中的特定日期启用和禁用
我有一个日历代码,在页面顶部我们提到了两年。 左侧上一年和右侧本年 因此,一旦用户打开日历,日历上就会默认显示当前年份、日期和月份。 对于日历,左右箭头都指向下一个月和上一个月 例如:如果我们有2017年和2018年,根据需求,如果用户选择2017年1月,那么左箭头应该被禁用。如果用户单击向右箭头,则用户应能一直到2017年12月,此后,向右箭头应被禁用。 然后,当用户单击2018并移动到2018年1月时,左箭头应被禁用。同样,该月的右箭头应仅在当前月份启用。 我尝试了不同的方法,但在某个月内无法禁用单击日历左键和右键单击月份箭头根据android中的特定日期启用和禁用,android,Android,我有一个日历代码,在页面顶部我们提到了两年。 左侧上一年和右侧本年 因此,一旦用户打开日历,日历上就会默认显示当前年份、日期和月份。 对于日历,左右箭头都指向下一个月和上一个月 例如:如果我们有2017年和2018年,根据需求,如果用户选择2017年1月,那么左箭头应该被禁用。如果用户单击向右箭头,则用户应能一直到2017年12月,此后,向右箭头应被禁用。 然后,当用户单击2018并移动到2018年1月时,左箭头应被禁用。同样,该月的右箭头应仅在当前月份启用。 我尝试了不同的方法,但在某个月内无
//next arrow click for showing next month
nextMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (month > 11) {//checking the month
month = 1;
year++;
} else {
month++;
}
setGridCellAdapterToDate(month, year);
}
});
//prev arrow click to show prev month
prevMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (month <= 1) {//checking the month
month = 12;
year--;
} else {
month--;
}
setGridCellAdapterToDate(month, year);
}
});
//下一个箭头单击显示下一个月
nextMonth.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(月份>11){//检查月份
月=1;
年份++;
}否则{
月份++;
}
setGridCellAdapterToDate(月,年);
}
});
//上一个箭头单击以显示上一个月
prevMonth.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(月使用下面的代码更新calendarMy
对象中的当前时间,并检查当前月份和年份
Calendar calendar = Calendar.getInstance();
Calendar calendarMy = Calendar.getInstance();
nextMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (month > 11) {//checking the month
month = 1;
year++;
} else {
month++;
}
//update current time
calendarMy.set(Calendar.MONTH,month);
calendarMy.set(Calendar.YEAR,year);
disableButton();
setGridCellAdapterToDate(month, year);
}
});
//prev arrow click to show prev month
prevMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (month <= 1) {//checking the month
month = 12;
year--;
} else {
month--;
}
//update current time
calendarMy.set(Calendar.MONTH,month);
calendarMy.set(Calendar.YEAR,year);
disableButton();
setGridCellAdapterToDate(month, year);
}
});
public void disableButton()
{
// condition for checking first month of last year
if (calendar.get(Calendar.YEAR) != (calendarMy.get(Calendar.YEAR)) && calendarMy.get(Calendar.MONTH) == 0) {
//disable left button
}
// condition for checking current month
else if (calendarMy.get(Calendar.YEAR) == (calendarMy.get(Calendar.YEAR)) && calendar.get(Calendar.MONTH) == calendarMy.get(Calendar.MONTH)) {
//disable right button
}else{
// enable both button
}
}
您好,非常感谢。我已经在第一个if条件中的disableButton方法calendarMy.get(Calendar.MONTH)中添加了更改==0它显示在0的位置必须是:Calendar.sunday,Calendar.monday…你能告诉我在0的位置我需要添加当前日期吗?嗨,我已经附上了问题中的图像。你能告诉我在0的位置我需要添加日历中的当前日期吗?你导入classjava.util.Calendar
或任何其他日历类吗ss@Amrutha你也可以使用Calendar.Janur
intent of0
非常感谢..我已经使用了这个逻辑,能够根据条件执行单击操作。谢谢,我传递的消息就像(Calendar.get(Calendar.YEAR)!=(calendarMy.get(Calendar.YEAR))&&Integer.toString(calendarMy.get(Calendar.MONTH))=“一月”){myCalendar.get(Calendar.MONTH)=Calendar.JANUARY尝试此操作可能使用设置最大日期和最小日期选项
Just Pass start month in " myCalendar.get(Calendar.MONTH)".Happy coding...
DatePickerDialog dpd = new DatePickerDialog(ActivityNewGroup.this, date,
myCalendar.get(Calendar.YEAR),
myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH));
dpd.getDatePicker().setMinDate(System.currentTimeMillis());