2017-11-03 3 views
0

In meiner Anwendung möchte ich Benutzer Datum aus dem letzten Jahr wie Januar vom 1. bis wählen bis 31. Dezember 2016 i MinDate & MaxDate gesetzt versucht ....Wie wird ein bestimmter Monat oder Jahr für die Auswahl in Datepicker festgelegt?

public static class LastYearBirthDatePicker extends DialogFragment 
     implements DatePickerDialog.OnDateSetListener { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day); 
     int lastYear = getCurrentYear()-1; 
     Calendar min = Calendar.getInstance(); 
     min.set(Calendar.DAY_OF_MONTH,1); 
     min.set(Calendar.MONTH,0); 
     min.set(Calendar.YEAR,lastYear); 
     dialog.getDatePicker().setMinDate(min.getTimeInMillis()); 
     Calendar max = Calendar.getInstance(); 
     max.set(Calendar.DAY_OF_MONTH,31); 
     max.set(Calendar.MONTH,11); 
     max.set(Calendar.YEAR,lastYear); 
     dialog.getDatePicker().setMaxDate(max.getTimeInMillis()); 
     return dialog; 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 


    } 
} 

aber gibt es eine bessere Möglichkeit ein bestimmtes Jahr für die Einstellung nur und ich brauche gleiche für bestimmten Monat auch wie jeder Monat im Jahr 2016 (Benutzern jeden Tag in einem bestimmten Monat wählen)

+0

Ist dies nicht funktioniert, oder nicht funktioniert als zu erwarten d? – user5226582

+0

https://stackoverflow.com/questions/468342365/date-picker-not-working-on-api-26/46843164?noredirect=1#comment80634619_46843164 werfen Sie einen Blick auf meine Antwort.! –

Antwort

0

Sie können dieses Set wie

Calendar cal = Calendar.getInstance(); 
cal.set(2016, 01, 01); 
cal.add(Calendar.YEAR, 1); 

int xxday = cal.get(Calendar.DATE); 
int xxmonth = cal.get(Calendar.MONTH); 
int xxyear = cal.get(Calendar.YEAR); 

datepicker.init(xxyear, xxmonth, xxday, null); 
Verwandte Themen