Как использовать диалог выбора времени, когда основной класс самостоятельно расширяет фрагмент? - PullRequest
0 голосов
/ 17 мая 2018

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

Пожалуйста, поделитесь кодом, чтобы я мог решить эту проблему. Я застрял с этим. Существуют ли дополнительные методы, которые мне потребуются для реализации?

Использование отдельного класса TimePickerFragment public class FirstFragment extends Fragment implements TimePickerFragment.TimeDialogListener выдает ошибку: Класс «FirstFragment» должен быть объявлен как абстрактный или реализовывать абстрактный метод «onFinishDialog (String)» в «TimeDialogListener»

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Класс 'FirstFragment' должен быть объявлен как абстрактный или реализовать абстрактный метод 'onFinishDialog (String)' в 'TimeDialogListener'

Эта ошибка означает, что вам необходимо переопределить метод onFinishDialog(String причина его объявлена ​​как abstract в TimeDialogListener.Просто переопределите его в своем классе.

@Override
public void onFinishDialog(String s){

}

Кроме того, вы можете напрямую использовать TimePickerDialog в своем классе как.

private void showTimePicker(){
    Calendar calendar =Calendar.getInstance();
    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    int minute = calendar.get(Calendar.MINUTE);
    TimePickerDialog timePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
            //Do the stuff here
        }
    }, hour, minute, false);
    timePicker.setTitle("Pick Time");
    timePicker.show();
}
0 голосов
/ 17 мая 2018

Использование TimePickerDialog довольно просто

int hour = currentTime.get(Calendar.HOUR_OF_DAY);
int minute = currentTime.get(Calendar.MINUTE);
TimePickerDialog timePicker;
timePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                //logic to handle time set event
            }
        }, hour, minute, true);//Yes 24 hour time
        timePicker.setTitle("Select Time");
        timePicker.show();
...