Введите прошедшее время (какой-нибудь диалог?) - PullRequest
0 голосов
/ 06 июля 2018

Мне нужно, чтобы пользователь ввел время, необходимое для выполнения определенной задачи, например: 01h: 35mm: 00ss. Формат может отличаться.

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

1 Ответ

0 голосов
/ 06 июля 2018

Ну, для этого есть встроенные классы. Посмотрите этот код, как «быстрый и грязный» пример, чтобы выбрать часы и минуты:

static boolean bPickedTimeIsValid = false;

public void showTimePicker ()
{
    bPickedTimeIsValid = false;

    DialogFragment newFragment = new TimePickerFragment ();
    newFragment.show (getFragmentManager (), "timePicker");
}

public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener
{
    @Override
    public Dialog onCreateDialog (Bundle savedInstanceState)
    {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance ();
        int hour = c.get (Calendar.HOUR_OF_DAY);
        int minute = c.get (Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog (getActivity (), this, hour, minute, DateFormat.is24HourFormat (getActivity ()));
    }

    public void onTimeSet (TimePicker view, int hourOfDay, int minute)
    {
        // Time has been chosen by the user, do something with it!

        pickedTimeHour = hourOfDay;
        pickedTimeMinutes = minute;
        bPickedTimeIsValid = true;

        // Process the picked time as needed...
    }
}

В вашем приложении вам нужно было бы позвонить showTimePicker() и указать код, который необходимо выполнить, когда пользователь выбирает время, в onTimeSet().

Максимальная продолжительность ограничена одним днем, конечно.

...