EditText выводит TimePicker для системы будильника/напоминания

Можно ли открыть TimePicker при нажатии/касании EditText?

Я пытался найти примеры этого, но я не нашел ни одного. Я хочу использовать это введенное время для установки будильника, поэтому было бы здорово, если бы кто-нибудь рассказал мне, как это сделать, и привел пример.

Я бы предпочел, чтобы время было в 24-часовом формате вместо 12-часового.

Спасибо за любые представленные ответы.


person Mark O'Sullivan    schedule 24.07.2013    source источник


Ответы (2)


Я дам вам несколько советов, как этого добиться.

  1. Чтобы отобразить всплывающее окно/диалог после нажатия/касания EditText, вы найдете ответ здесь: Android EditText onClickListener. Также там обсуждается, является ли всплывающее диалоговое окно после нажатия на EditText стандартным/нестандартным интерфейсом.

  2. Для TimePicker вы можете использовать систему TimePickerDialog. Вы можете найти руководство по TimePickerDialog здесь: http://www.pavanh.com/2013/04/android-timepicker-example.html

  3. Чтобы использовать 24-часовой формат вместо 12-часового в TimePicker, вы можете использовать следующий метод: timePicker.setIs24HourView(true), или, если вы используете TimePickerDialog, вы установите значение true в конструкторе.

Надеюсь, это поможет вам.

person Koso    schedule 24.07.2013
comment
Нет ли способа сделать это без DialogFragment? Я получил EditText, чтобы открыть DatePicker без использования сложного пользовательского DialogFragment - person Mark O'Sullivan; 27.07.2013
comment
Да, проверьте эту ссылку, я разместил код, который пробовал - stackoverflow.com/questions/17901946/ - person Mark O'Sullivan; 28.07.2013
comment
Я обновил пункт 2. Вы можете использовать систему TimePickerDialog. Таким образом, нет необходимости создавать собственный диалог. Я думаю, что учебник из пункта 2 может помочь вам решить вопрос, который вы разместили в комментарии. - person Koso; 28.07.2013
comment
Пропустил один крошечный бит кода, разобрался. +1 за попытку помочь мне и предоставление учебника для TimePickerDialog - person Mark O'Sullivan; 28.07.2013

Это решение. Я забыл о логическом значении true/false, и поэтому оно не работало, когда я пробовал что-то похожее на код DatePicker.

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, true);
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();

            }
        });
person Mark O'Sullivan    schedule 27.07.2013