如何创建 TimePickerDialog android
How to create TimePickerDialog android
我想创建 TimePickerDialog,主题是示例对话框。
但我遵循这个link
http://www.android-examples.com/create-timepickerdialog-to-select-time-in-12-hours-format-android/
结果不是简单的对话框
结果是
我要
如何设置?
对不起,我的图片太大了。
您可以尝试 datePickerMode 微调器,就像下面日期时间选择器中的代码
android:calendarViewShown="false"
android:datePickerMode="spinner"
试试下面的代码。它看起来与您提供的图像几乎相似。要么使用这个
<TimePicker
android:id="@+id/simpleTimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"/>
或者这个。
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();
我已经为旧的 TimePickerDialog 制作了一种方法...我和你有同样的情况..这对我来说非常有用..
使用以下方法
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();
}
希望这对您有所帮助...如果您需要任何帮助,请告诉我
更改此行:
timepickerdialog = new TimePickerDialog(MainActivity.this,
new TimePickerDialog.OnTimeSetListener() {
对此:
timepickerdialog = new TimePickerDialog(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_DARK,
new TimePickerDialog.OnTimeSetListener() {
它允许您为您的TimePicker
设置主题
自定义时间选择器:
您可以创建一个 class 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);
}
您可以像 S-planner
一样使用自定义 time picker and i have more customized it here
我想创建 TimePickerDialog,主题是示例对话框。
但我遵循这个link
http://www.android-examples.com/create-timepickerdialog-to-select-time-in-12-hours-format-android/
结果不是简单的对话框
结果是
我要
如何设置?
对不起,我的图片太大了。
您可以尝试 datePickerMode 微调器,就像下面日期时间选择器中的代码
android:calendarViewShown="false"
android:datePickerMode="spinner"
试试下面的代码。它看起来与您提供的图像几乎相似。要么使用这个
<TimePicker
android:id="@+id/simpleTimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"/>
或者这个。
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();
我已经为旧的 TimePickerDialog 制作了一种方法...我和你有同样的情况..这对我来说非常有用..
使用以下方法
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();
}
希望这对您有所帮助...如果您需要任何帮助,请告诉我
更改此行:
timepickerdialog = new TimePickerDialog(MainActivity.this,
new TimePickerDialog.OnTimeSetListener() {
对此:
timepickerdialog = new TimePickerDialog(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_DARK,
new TimePickerDialog.OnTimeSetListener() {
它允许您为您的TimePicker
自定义时间选择器:
您可以创建一个 class 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);
}
您可以像 S-planner
一样使用自定义 time picker and i have more customized it here