2016-07-22 18 views
2

Wie kann ich Monat von DatePicker auf DialogFragment formatieren? Ich habe diese Klasse erstellt, die DialogFragment erweitert: Ich habe eine Funktion erstellt haben, die DatePicker In meiner TätigkeitSet Format Monat DatePicker erweitert DialogFragment

DatePickerCustom

public class DatePickerCustom 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); 
     month = month+1; 

     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 


    public void onDateSet(DatePicker view, int year, int month, int day) { 
     TextView datePickerText = (TextView)getActivity().findViewById(R.id.date_picker_text); 
     datePickerText.setText(day+" - "+month+" - "+year); 

    } 
} 

zeigen, wenn i Symbole oder TextView berühren:

public void showDatePickerDialog(View v) { 
    DialogFragment newFragment = new DatePickerCustom(); 
    newFragment.show(getFragmentManager(), "datePicker"); 

} 

In der Anzeige sehe ich Datum wie: 22 - 7 - 2016 aber ich hätte dieses Format: 22 - 7 - 2016 so mit 0 vor dem Monat, wenn es < von 10

Wie kann ich das tun?

Antwort

1

Sie könnten ein Date Objekt aus Ihren Werten erstellen, indem Sie Calendar verwenden und es mit einer entsprechenden SimpleDateFormat Instanz formatieren.

Etwas wie folgt aus:

public void onDateSet(DatePicker view, int year, int month, int day) { 
    TextView datePickerText = (TextView) getActivity().findViewById(R.id.date_picker_text); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.set(year, month, day); 

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
    String dateString = dateFormat.format(calendar.getTime()); 

    datePickerText.setText(dateString); 
} 
+0

Dank! perfekt! – LorenzoBerti