类androidx.preference.DialogPreference源码实例Demo

下面列出了怎么用androidx.preference.DialogPreference的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: openScale   文件: TimePreferenceDialog.java
@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));
    }
}
 
源代码2 项目: openScale   文件: TimePreferenceDialog.java
@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()));
            }
        }
    }
}