0

Been searching how to impliment the MaterialTimePicker to old TimerPickerDialog

How to pick time using material design?

https://github.com/material-components/material-components-android/blob/master/catalog/java/io/material/catalog/timepicker/TimePickerMainDemoFragment.java

My Current Solution is this but too old

  return new TimePickerDialog(getActivity(),android.R.style.Theme_Holo_Light_Dialog, (TimePickerDialog.OnTimeSetListener)getActivity(), hour, minute, DateFormat.is24HourFormat(getActivity()));

the code

public class TimePickerFragment extends DialogFragment {
    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);
        return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, DateFormat.is24HourFormat(getActivity()));

    }
}

From this

old picker

to this

enter image description here

James
  • 235
  • 1
  • 2
  • 10

1 Answers1

2
MaterialTimePicker materialTimePicker = new MaterialTimePicker.Builder()
            .setTimeFormat(TimeFormat.CLOCK_24H)
            .build();


    pick.setOnClickListener(v -> materialTimePicker.show(getSupportFragmentManager(),
            DiConstant.TIME_PICKER));

    materialTimePicker.addOnPositiveButtonClickListener(dialog -> {
        int newHour = materialTimePicker.getHour();
        int newMinute = materialTimePicker.getMinute();
        String time = String.format(Locale.getDefault(), "%02d:%02d", newHour, newMinute);
        pick.setText(time);
    });

Where pick is the view you show selected time in. To answer your comment you could try

return materialTimePicker.show(getSupportFragmentManager(),
            "TIME_PICKER");
SABANTO
  • 1,316
  • 9
  • 24