В моем проекте я использую TimepickerDialog для отображения времени на TextView. Мой Timepickerdialog отображается как часы, но я хочу, чтобы он отображался как счетчик. Как я могу это сделать?
Возможный дубликат Можно ли изменить стиль Android L 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);
Спасибо, но у меня есть timePickerDialog, а не timePicker
@zahras: используйте тему, в которой использовался счетчик, например android.R.style.Theme_Holo_Light_Dialog.
android.R.style.Theme_Holo_Light_Dialog устарел в API 28.
Есть ли нерекомендуемая тема, в которой используется счетчик?
используйте этот код для выбора времени в качестве счетчика
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();
android.R.style.Theme_Holo_Light_Dialog_NoActionBar устарел в API 28.
TimePickerDialog nTimePickerDialog = new TimePickerDialog(this, 2,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker pTimePicker, int hr, int min) {
TextView.setText(MessageFormat.format("{0}:{1}", hr, min));
}
},
mHour, mMin, false);
nTimePickerDialog.setTitle("Select Intervals");
nTimePickerDialog.show();
Котлин:
Я использовал приведенный ниже код, чтобы получить Timepicker в режиме счетчика.
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()
}