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
How to create TimePickerDialog android
提问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
结果是
I want
我想
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"/>
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