我有一個自定義對話框,帶有一個timepicker和一個datepicker。我想將timepicker的分鐘旋鈕集合設置爲[0,15,30,45],即15分鐘的時間間隔。間隔15分鐘的Timepicker
現在我看到幾個解決方案,但似乎沒有覆蓋的事實,用戶界面將顯示下一個和以前分鐘爲-1和+1分鐘選擇分鐘例如29,30,31,顯示用戶。
此外,即時通訊不太清楚,我怎麼我的自定義timepicker附加到活動 - 我不需要customerTimePicker XML組件做到這一點?
所以總之 - 我是否調整本地timepicker或需要建立一個自定義的XML和類?
我有什麼目前 佈局:
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker_fixture"
android:layout_weight="1" />
活動
TimePicker timePicker_fixture = (TimePicker) dialog.findViewById(R.id.timePicker_fixture);
timePicker_fixture.setIs24HourView(true);
一個建議的自定義類(如何使用這個 - 我需要在我的佈局中的自定義XML組件?)
public class CustomTimePickerDialog extends TimePickerDialog {
private final static int TIME_PICKER_INTERVAL = 15;
private TimePicker timePicker;
private final OnTimeSetListener callback;
public CustomTimePickerDialog(Context context, OnTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView) {
super(context, TimePickerDialog.THEME_HOLO_LIGHT, callBack, hourOfDay, minute/TIME_PICKER_INTERVAL,
is24HourView);
this.callback = callBack;
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (callback != null && timePicker != null) {
timePicker.clearFocus();
callback.onTimeSet(timePicker, timePicker.getCurrentHour(),
timePicker.getCurrentMinute() * TIME_PICKER_INTERVAL);
}
}
@Override
protected void onStop() {
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
try {
Class<?> classForid = Class.forName("com.android.internal.R$id");
Field timePickerField = classForid.getField("timePicker");
this.timePicker = (TimePicker) findViewById(timePickerField
.getInt(null));
Field field = classForid.getField("minute");
NumberPicker mMinuteSpinner = (NumberPicker) timePicker
.findViewById(field.getInt(null));
mMinuteSpinner.setMinValue(0);
mMinuteSpinner.setMaxValue((60/TIME_PICKER_INTERVAL) - 1);
List<String> displayedValues = new ArrayList<String>();
for (int i = 0; i < 60; i += TIME_PICKER_INTERVAL) {
displayedValues.add(String.format("%02d", i));
}
mMinuteSpinner.setDisplayedValues(displayedValues
.toArray(new String[0]));
} catch (Exception e) {
e.printStackTrace();
}
}
}
你看這裏 - http://stackoverflow.com/questions/2580216/android-timepicker-minutes-to-15? – Oleksandr
好吧,工作:)它有點....凌亂?即使使用它,但我不明白的suppressLint(「NewApi」) – Fearghal
只是刪除此註釋,你會看到行錯誤(如果你的項目api級別少「NewApi」) – Oleksandr