有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java返回材料选择器

一直在研究如何将MaterialTimePicker实现到旧时的PickerDialog

How to pick time using material design?

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

我目前的解决方案是这个,但太旧了

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

密码

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()));

    }
}

从这个

old picker

对这个

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    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);
        });
    

    其中,“拾取”是显示选定时间的视图。 要回答您的评论,您可以尝试

    return materialTimePicker.show(getSupportFragmentManager(),
                "TIME_PICKER");