Android 微调器模式下的时间选择器对话框

Android 微调器模式下的时间选择器对话框,android,android-timepicker,Android,Android Timepicker,在我的项目中,我使用TimepickerDialog在TextView中显示时间。我的Timepickerdialog显示为时钟,但我希望它显示为微调器。我如何才能做到这一点?为微调器模式添加android:timePickerMode=“1” 及 用于时钟模式的android:timePickerMode=“2” 编辑 在TimePickerDialog的构造函数中使用如下主题 TimePickerDialog timePickerDialog = new TimePickerDialog(D

在我的项目中,我使用
TimepickerDialog
TextView
中显示时间。我的
Timepickerdialog
显示为时钟,但我希望它显示为微调器。我如何才能做到这一点?

为微调器模式添加
android:timePickerMode=“1”

用于时钟模式的android:timePickerMode=“2”

编辑

在TimePickerDialog的构造函数中使用如下主题

TimePickerDialog timePickerDialog = new TimePickerDialog(DateTimePickerDialogActivity.this, android.R.style.Theme_Holo_Light_Dialog, onTimeSetListener, hour, minute, is24Hour);

使用此代码将时间选择器显示为微调器

    public void showCustomTimePicker()
    {

          final Calendar myCalender = Calendar.getInstance();
          int hour = myCalender.get(Calendar.HOUR_OF_DAY);
          int minute = myCalender.get(Calendar.MINUTE);


            TimePickerDialog.OnTimeSetListener myTimeListener = new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    if (view.isShown()) {
                        myCalender.set(Calendar.HOUR_OF_DAY, hourOfDay);
                        myCalender.set(Calendar.MINUTE, minute);

                    }
                }
            };
            TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(), android.R.style.Theme_Holo_Light_Dialog_NoActionBar, myTimeListener, hour, minute, true);
            timePickerDialog.setTitle("Choose hour:");
            timePickerDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
            timePickerDialog.show();
     }
使用此代码

  TimePickerDialog picker = new TimePickerDialog(MainActivity.this,android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker tp, int sHour, int sMinute) {
                    //eText.setText(sHour + ":" + sMinute);
                }
            }, 2, 3, false);
    picker.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
           picker .show();
科特林:

我使用下面的代码在微调器模式下获取时间选择器

private fun showTimePicker() {
        // Use the current time as the default values for the picker
        val c = Calendar.getInstance()
        val hour = c.get(Calendar.HOUR_OF_DAY)
        val minute = c.get(Calendar.MINUTE)
        // date picker dialog
        val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute ->
            c.set(Calendar.HOUR_OF_DAY, hour)
            c.set(Calendar.MINUTE, minute)
            mSelectedTime = SimpleDateFormat("HH:mm").format(c.time)
            root.tvTime.text = mSelectedTime
        }
        val timePickerDialog = TimePickerDialog(requireContext(),AlertDialog.THEME_HOLO_LIGHT, timeSetListener, hour, minute,
            DateFormat.is24HourFormat(requireContext()))
        timePickerDialog.show()
    }

可能是重复的谢谢,但我有一个计时器对话,不是timePicker@zahras:使用使用微调器的主题,例如
android.R.style.theme\u Holo\u Light\u Dialog
android.R.style.theme\u Holo\u Light\u Dialog
在API 28中被弃用。是否有未弃用的主题使用微调器?
android.R.style.theme\u Holo\u Light\u Dialog\u操作栏在API 28中被弃用。
private fun showTimePicker() {
        // Use the current time as the default values for the picker
        val c = Calendar.getInstance()
        val hour = c.get(Calendar.HOUR_OF_DAY)
        val minute = c.get(Calendar.MINUTE)
        // date picker dialog
        val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute ->
            c.set(Calendar.HOUR_OF_DAY, hour)
            c.set(Calendar.MINUTE, minute)
            mSelectedTime = SimpleDateFormat("HH:mm").format(c.time)
            root.tvTime.text = mSelectedTime
        }
        val timePickerDialog = TimePickerDialog(requireContext(),AlertDialog.THEME_HOLO_LIGHT, timeSetListener, hour, minute,
            DateFormat.is24HourFormat(requireContext()))
        timePickerDialog.show()
    }