Я хочу выбрать два разных времени, когда отображается мое диалоговое окно выбора времени, но после его сохранения в первый раз средство выбора времени сохраняет час, который был ранее выбран, и настроен на выбор минут. По сути, я хочу обновить виджет, чтобы после того, как я щелкнул для подтверждения в первый раз, средство выбора времени было настроено на выбор часов вместо минут.
Я попытался повторно показать всплывающее окно, чтобы виджет был сброшен, и он работает, но поскольку у меня есть несколько текстовых представлений во всплывающем макете с программными полями, макет перепутался, и я хотел убедиться, что есть более простой способ сделать это, не перенастраивая мой макет.
Средство выбора времени в основном находится в другом макете, чем тот, который вызывается и вызывается как диалоговое окно.
Dialog mydialog;
mydialog.setContentView(R.layout.timepickerpopup);
a[0]
имеет значение true в методе создания, вне конфигурации макета всплывающего окна.
done.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= 23 && a[0]) {
hour[0] = timePicker.getHour();
min[0] = timePicker.getMinute();
timefrom.setText(String.format(Locale.getDefault(),
"%02d:%02d", hour[0], min[0]));
a[0] = false;
}
else if (Build.VERSION.SDK_INT >= 23 && !a[0]) {
hour[1] = timePicker.getHour();
min[1] = timePicker.getMinute();
timeuntil.setText(String.format(Locale.getDefault(),
"%02d:%02d", hour[1], min[1]));
mydialog.dismiss();
}
else if (a[0]) {
hour[0] = timePicker.getCurrentHour();
min[0] = timePicker.getCurrentMinute();
timefrom.setText(String.format(Locale.getDefault(),
"%02d:%02d", hour[0], min[0]));
a[0] = false;
}
else {
hour[1] = timePicker.getCurrentHour();
min[1] = timePicker.getCurrentMinute();
timeuntil.setText(String.format(Locale.getDefault(),
"%02d:%02d", hour[1], min[1]));
mydialog.dismiss();
}
}
});