java 如何创建 TimePickerDialog android

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/45768095/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 08:53:00  来源:igfitidea点击:

How to create TimePickerDialog android

javaandroiddialogdatetimepicker

提问by ARR.s

I want to create TimePickerDialog and theme is sample dialog.

我想创建 TimePickerDialog 并且主题是示例对话框。

but I follow this link

但我按照这个链接

http://www.android-examples.com/create-timepickerdialog-to-select-time-in-12-hours-format-android/

http://www.android-examples.com/create-timepickerdialog-to-select-time-in-12-hours-format-android/

result is not simple dialog

结果不是简单的对话

result is

结果是

enter image description here

在此处输入图片说明

I want

我想

enter image description here

在此处输入图片说明

How to set this ?

这个怎么设置?

and sorry My image is so large.

对不起,我的图像太大了。

回答by Lokesh Desai

I have made one method for old TimePickerDialog...i have same situation like you..this is working great for me..

我为旧的 TimePickerDialog 制作了一种方法......我和你有同样的情况......这对我来说很好用......

Use below method

使用以下方法

    public void showHourPicker() {
            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();
        }

Hope this will help you...let me know if you need any help

希望这会帮助你......如果你需要任何帮助,请告诉我

回答by Manish

Try the below code. It looks almost similar to what image you have provided. Either use this

试试下面的代码。它看起来与您提供的图像几乎相似。要么用这个

<TimePicker
    android:id="@+id/simpleTimePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:timePickerMode="spinner"/>

enter image description here

在此处输入图片说明

or this.

或这个。

 final Calendar calenderInstance = Calendar.getInstance();
    int hr = calenderInstance.get(Calendar.HOUR_OF_DAY);
    int min = calenderInstance.get(Calendar.MINUTE);
    TimePickerDialog.OnTimeSetListener onTimeListner = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            if (view.isShown()) {
                calenderInstance.set(Calendar.HOUR_OF_DAY, hourOfDay);
                calenderInstance.set(Calendar.MINUTE, minute);
            }
        }
    };
    TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this,
            android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
            onTimeListner, hr, min, true);
    timePickerDialog.setTitle("Set Time");
    Objects.requireNonNull(timePickerDialog.getWindow()).setBackgroundDrawableResource(android.R.color.transparent);
    timePickerDialog.show();

回答by OmiK

you may try datePickerMode spinnerlike below code in date time picker

您可以在日期时间选择器中尝试像下面的代码一样的datePickerMode 微调

android:calendarViewShown="false"
android:datePickerMode="spinner"

回答by sam

Change this line:

改变这一行:

timepickerdialog = new TimePickerDialog(MainActivity.this,
new TimePickerDialog.OnTimeSetListener() {

to this:

对此:

timepickerdialog = new TimePickerDialog(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_DARK,
                    new TimePickerDialog.OnTimeSetListener() {

It allows you to theme your TimePicker

它允许您将您的主题 TimePicker

回答by Stuti Kasliwal

Custom TimePicker:

自定义时间选择器:

You can make a class DateTimePickerCustom which contains the method you can use anywhere through out your project:

您可以创建一个 DateTimePickerCustom 类,其中包含您可以在整个项目中的任何地方使用的方法:

    public static void getTimePicker(Context context, final int position, final PickerClickListener pickerClickListener) {  
          final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialog_time);
            dialog.show();
            final TimePicker timePicker = (TimePicker) dialog.findViewById(R.id.timePicker);
            timePicker.setIs24HourView(false);
            Button buttonOk = (Button) dialog.findViewById(R.id.buttonOk);
            Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
            buttonCancel.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
            buttonOk.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        SimpleDateFormat sdf24 = new SimpleDateFormat("HH:mm");
                        SimpleDateFormat sdf12 = new SimpleDateFormat("hh:mm a");

                        String strTime = timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute();
                        Date time = sdf24.parse(strTime);
                        String formattedTime = sdf12.format(time);
                        Log.d(TAG, "formattedTime: " + formattedTime);
                        pickerClickListener.onTimeSelect(formattedTime, position);
                        dialog.dismiss();

                    } catch (ParseException e) {
                        e.printStackTrace();
                    }


                }
            });
}

XMLcode:

XML代码:

<EditText
       android:id="@+id/editTextStartTime"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_centerVertical="true"
       android:editable="false"
       android:focusable="false"
       android:singleLine="true"
       android:textSize="14sp" />

Call this method in MainActivityas :

MainActivity 中调用此方法为:

 @OnClick(R.id.editTextStartTime)
    public void startTimePicker() {
        DateTimePickerCustom.getTimePicker(context, 0, this);
    }

回答by Rajesh Nasit

You can use Custom time pickerand i have more customized it herelike S-planner

您可以使用自定义时间选择器,我在此处进行了更多自定义,例如 S-planner