zaplanujmy coś – DatePicker – #0C

Chyba dopadła mnie wirus uczestników DSP – brak czasu!!! ale zamiast marnować czas na tłumaczenie się czemu tego czasu mi brak pokażę coś na szybko 😉

Przycisk i wybieraczka do daty 🙂


<ImageButton
android:src="@android:drawable/ic_menu_my_calendar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pick_date"
android:onClick="showDatePickerDialog"
android:id="@+id/calendar_button" />

wp-1490700719686.png

Do przycisku wybrałam jedną z ikon, których dostarcza android, a żeby móc podpiąć akcję z Activity pod metodę onClick musi ona zwracać voida i przyjmować jako parametr View. Samo ciało metody z tutoriala, bo nie mam potrzeby odkrywać koła na nowo 😉


public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}

wp-1490700690473.png

No i oczywiście gdzieś przydałoby się poinstruować kalendarz, żeby na wejściu ustawiał dzisiejszą datę i przechował gdzieś tą wybraną. Na ten moment stworzyłam sobie po prostu pole tekstowe, w którym umieszczam pobraną godzinę. Implementujemy odpowiedni fragment, który dziedziczy po DialogFragment i implementuje  DatePickerDialog.OnDateSetListener


public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
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);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
TextView dateView = (TextView) getActivity().findViewById(R.id.date_view);
Calendar c = Calendar.getInstance();
c.set(year, month, day);
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, new Locale("pl", "pl"));
dateView.setText(df.format(c.getTime()));
}
}

kroczek po kroczku, byle do przodu 🙂

A jutro podsumowanie miesiąca 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.