PersianMaterialDateTimePicker
PersianMaterialDateTimePicker copied to clipboard
muli date picker بدرستی کارنمیکند
سلام ، چطوری میشه از مولتی دیت پیکر استفاده کرد . هر چی سمپل هم وجود داره خرابه . لطفا اگر کس اطلاعاتی داره داکیومنتی قرار بده که مثلا چطور میشه در محدوده 2 سال انتخاب داشت نه یکسال ، و چطور میشه تاریخ رو بگیره و و همان روز را برامون فعال کنه و چطور میشه روز جاری رو هم از انتخاب خارج کرد ممنونم
راهی پیدا کردم ، اگر میخوایید یک تاریخ رو بگیره به فرض مثال 1398/01/02 و 1399/01/23 این روز ها رو فقط فعال کنه به این شکل عمل کنید :
این کد رو در کلاس PersianCalendar و به جای متد addPersianDate قرار دهید :
public void addPersianDate(int field, int amount , int amount1 , int amount2) { if (amount == 0) { return; // Do nothing! }
if (field < 0 || field >= ZONE_OFFSET) {
throw new IllegalArgumentException();
}
if (field == YEAR) {
setPersianDate(this.persianYear + amount, getPersianMonth(),
this.persianDay);
return;
} else if (field == MONTH) {
setPersianDate(this.persianYear
+ ((getPersianMonth() + amount) / 12),
(getPersianMonth() + amount) % 12, this.persianDay);
return;
}else if(field == DAY_OF_MONTH){
setPersianDate((amount) , (amount1) , (amount2) );
return;
}
add(field, amount);
calculatePersianDate();
}
سپس به mainactivity بیاید و این کد رو به جای case R.id.multi_date_button: قرار دهید :
case R.id.multi_date_button: MultiDatePickerDialog mdpd = MultiDatePickerDialog.newInstance(MainActivity.this, null); PersianCalendar[] pc = new PersianCalendar[2]; pc[0] = new PersianCalendar(); pc[0].addPersianDate(PersianCalendar.DAY_OF_MONTH, 1398 , 00 , 02); pc[1] = new PersianCalendar(); pc[1].addPersianDate(PersianCalendar.DAY_OF_MONTH, 1399 ,00 , 17); mdpd.setSelectableDays(pc); mdpd.setThemeDark(modeDarkDate.isChecked()); mdpd.setTypeface(fontName); mdpd.show(getFragmentManager(), MULTIDATEPICKER); break; default: break;
پیرور و سربلند باشید