Es kann Ihnen helfen, den Code unten und ändern entsprechend Ihrer Einstellung
public class TodayTabFragment extends Fragment {
Activity mActivity;
SharedPreferences mSharedPreferences;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity=getActivity();
mSharedPreferences= mActivity.getSharedPreferences("selected_date", Context.MODE_PRIVATE);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.news_fragment_today_layout, null);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
try {
Calendar mCalendar = Calendar.getInstance();
int YEAR=mSharedPreferences.getInt("year",0);
if (YEAR==0)
YEAR=mCalendar.get(Calendar.YEAR);
int MONTH=mSharedPreferences.getInt("monthOfYear",0);
if (MONTH==0)
MONTH=mCalendar.get(Calendar.MONTH);
int DAY_OF_MONTH=mSharedPreferences.getInt("dayOfMonth",0);
if (DAY_OF_MONTH==0)
DAY_OF_MONTH=mCalendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putInt("year", year);
editor.putInt("monthOfYear", monthOfYear);
editor.putInt("dayOfMonth", dayOfMonth);
editor.apply();
System.out.print(dateFormatter.format(newDate.getTime()));
}
}, YEAR, MONTH, DAY_OF_MONTH);
DatePicker datePicker = datePickerDialog.getDatePicker();
Date minDate = dateFormatter.parse((YEAR-1)+"-"+MONTH+"-"+DAY_OF_MONTH);
datePicker.setMinDate(minDate.getTime());
Date maxDate = dateFormatter.parse((YEAR+1)+"-"+MONTH+"-"+DAY_OF_MONTH);
datePicker.setMaxDate(maxDate.getTime());
datePickerDialog.show();
}catch (Exception e){
Log.printStackTrace(e);
}
}
}
Hallo, vielen Dank für Ihre Antwort, aber wie deaktiviere ich die kommenden Jahre aus dem Kalender und Satz versuchen das ausgewählte Datum auf Datepicker beim nächsten öffnen –
nein, funktioniert nicht. Verwenden dtaepickerdialog in Fragmenten –
Überprüfen Sie Ihren Code .. Ich habe gerade versucht mich selbst in Fragment .. es funktioniert gut für mich..Ich aktualisiere Deaktivieren Datum unter einem Jahr und nach einem Jahr. Ändern Sie die Bedingung entsprechend Ihrer Anforderung. –