下面列出了怎么用androidx.preference.DialogPreference的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
timePicker = view.findViewById(R.id.timePicker);
calendar = Calendar.getInstance();
Long timeInMillis = null;
DialogPreference preference = getPreference();
if (preference instanceof TimePreference) {
TimePreference timePreference = (TimePreference) preference;
timeInMillis = timePreference.getTimeInMillis();
}
if (timeInMillis != null) {
calendar.setTimeInMillis(timeInMillis);
boolean is24hour = DateFormat.is24HourFormat(getContext());
timePicker.setIs24HourView(is24hour);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
}
}
@Override
public void onDialogClosed(boolean positiveResult) {
if (positiveResult) {
int hours;
int minutes;
if (Build.VERSION.SDK_INT >= 23) {
hours = timePicker.getHour();
minutes = timePicker.getMinute();
} else {
hours = timePicker.getCurrentHour();
minutes = timePicker.getCurrentMinute();
}
calendar.set(Calendar.HOUR_OF_DAY, hours);
calendar.set(Calendar.MINUTE, minutes);
long timeInMillis = calendar.getTimeInMillis();
DialogPreference preference = getPreference();
if (preference instanceof TimePreference) {
TimePreference timePreference = ((TimePreference) preference);
if (timePreference.callChangeListener(timeInMillis)) {
timePreference.setTimeInMillis(timeInMillis);
timePreference.setSummary(DateFormat.getTimeFormat(getContext()).format(calendar.getTime()));
}
}
}
}