У меня уже есть DatePicker, который появляется, когда пользователь нажимает на поле EditText.
eReminderDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//To show current date in the datepicker
Calendar mcurrentDate = Calendar.getInstance();
int mYear = mcurrentDate.get(Calendar.YEAR);
int mMonth = mcurrentDate.get(Calendar.MONTH);
int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(AddReminder.this, new OnDateSetListener() {
public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
// TODO Auto-generated method stub
/* Your code to get date and time */
selectedmonth = selectedmonth + 1;
eReminderDate.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
}
}, mYear, mMonth, mDay);
mDatePicker.setTitle("Select Date");
mDatePicker.show();
}
});
Я пробовал сделать TimePicker аналогичным образом, но не смог заставить его работать. Это моя попытка заставить его работать
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(AddReminder.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
eReminderTime.setText( ""selectedHour + ":" + selectedMinute);
}
}, hour, minute);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
Неужели нельзя сделать так, как я сделал для DatePicker?
Я пробовал даже просто сделать всплывающее окно TimePicker после того, как щелкнули поле EditText с помощью этого кода.
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(TIME_DIALOG_ID);
}
});
По какой-то причине, когда я ввел это в Android Studio, showDialog был оценен.
Может ли кто-нибудь дать мне подсказку, где я ошибаюсь? Или мне просто нужно использовать Custom DialogFragment?
android
android-timepicker
Марк О'Салливан
источник
источник
Ответы:
Вам не хватает
+
промежутка между""
и выбранным часом,setText
методы принимают только одну строку, поэтому вам нужно объединить все части (первые кавычки, вероятно, не нужны).Это должно исправить вашу вторую ошибку, вы не указали последний параметр. Конструкторы TimePickerDialog
источник
Почему бы не писать повторно?
Создайте класс SetTime:
Затем вызовите его из функции onCreate:
источник
Вы можете использовать приведенный ниже код в прослушивателе onclick для edittext
Вы можете увидеть полный код в примере Android timepicker
источник
Я расширил красивое многоразовое решение @Sumoanand, чтобы поддерживать как изменение фокуса, так и прослушиватели щелчков при изменении времени несколько раз. Также обновление календаря сборщика, чтобы запомнить последнее выбранное время + форматирование ЧЧ: мм
Использование onCreate:
источник
Я не знаю, сработает ли это для вас, у меня это отлично работает.
Создайте метод для диалогового окна выбора даты / времени.
а потом, где хочешь, ты можешь делать это вот так
надеюсь, вы найдете это своим решением.
источник
Вы не добавили последний аргумент в
TimePickerDialog
.это код
TimePickerclass
. требуется логический аргументis24HourView
источник
источник
источник
Для меня диалогов появляется более одного, если я щелкаю текст редактирования dpFlightDate более одного раза для диалогового окна Timmer. как я могу избежать появления этого диалогового окна только один раз, и если пользователь щелкнет второй раз, диалоговое окно не должно появиться снова, т.е. если диалоговое окно отображается на экране?
источник