2017-08-19 54 views
1

我想创建TimePickerDialog,主题是样本对话框。如何创建TimePickerDialog android

但我请点击此链接

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

结果不是简单的对话

结果

enter image description here

我想

enter image description here

如何设置呢?

对不起我的形象是如此之大。

+0

时间选取器是平台主题依赖 –

+0

您可能会尝试找到您的答案[here](http s://stackoverflow.com/questions/29250086/custom-time-picker-dialog-in-android)和[这里](https://stackoverflow.com/questions/32967424/how-can-i-put-date - 和时间选取器-IN-A-对话功能于机器人)。 – Neck

+0

kitkat版本只会给你预期的输出。 –

回答

7

我已经作出一个方法为老TimePickerDialog ......我有一个像you..this同样的情况对我来说是伟大的工作..

使用以下方法

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

希望这将帮助你...让我知道如果您需要任何帮助

+0

谢谢!这是工作 –

+0

@ ARR.s很好...很高兴帮助你.. –

+0

@ ARR.s你能告诉我为什么你拒绝这个答案吗? –

0

,你可以尝试datePickerMode微调如下面的代码日期时间选择器下面的代码

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

尝试。它看起来几乎类似于你提供什么样的形象

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

enter image description here

+0

你可以添加你自己的完成按钮。而这不是平台主题依赖 – QEMU

0

改变这一行:

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

这样:

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

它可以让你的主题你TimePicker

0

定制TimePicker:

You ca n请一类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(); 
        } 


       } 
      }); 
} 

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" /> 

调用此方法MainActivity为:

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