android - 在 Android 的首选项屏幕中使用 TimePicker 或 DatePicker

标签 android datepicker timepicker preferencescreen

我正在尝试弄清楚如何为我正在构建的应用程序实现数据和时间选择器。我似乎找不到允许用户设置退出日期的内置方法。有没有一种优雅的方式来实现一个?我需要能够提取日、月、年、小时和分钟值以计算毫秒。关于实现此目标的可用建议有什么建议吗?

最佳答案

对于 PreferenceScreen 中的时间/日期选择器,您可以使用 onPreferenceClickListener(首选项)调用对话框。在 PreferenceActivity 中使用 DatePickerDialog.OnDateSetListenerTimePickerDialog.OnTimeSetListener 来检索选定的日期/时间。

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity implements DatePickerDialog.OnDateSetListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);

        Preference btnDateFilter = (Preference) findPreference("btnDateFilter");
        btnDateFilter.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @TargetApi(Build.VERSION_CODES.HONEYCOMB)
            @Override
            public boolean onPreferenceClick(Preference preference) {
                showDateDialog();
                return false;
            }
        });
    }

    @Override
    public void onDateSet(DatePicker datePicker, int i, int i2, int i3) {
        Log.i("dasd","year "+i+" month "+i2+" day "+i3);
    }

    private void showDateDialog(){
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        new DatePickerDialog(this,this, year, month, day).show();

    }
}

preference.xml

<Preference
    android:key="btnDateFilter"
    android:summary="Reschedule using current setting"
    android:title="Reschedule" />

关于android - 在 Android 的首选项屏幕中使用 TimePicker 或 DatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905600/

相关文章:

java - 我如何让按钮执行这个方法

javascript - 使用自定义指令在 Angular 引导日期选择器上禁用周末日期

jQuery Datepicker 和 Timepicker 用于同一输入字段依次弹出

javascript - 如何在使用 $ ("#id").off(); 后启用事件处理程序

安卓:TimePickerDialog - TimePickerDialog.OnTimeSetListener

javascript - Jquery Timepicker - 从当前时间安排时间到 6 小时

android - 对齐相对侧的两个 View (一个在顶部,一个在底部)并能够在顶 View 增长时插入底部 View ?

java - 使用 android studio : "Unfortunately, My application has stopped" 将数据导出到 google 表

android - recyclerview下的按钮不可见

javascript - 如何显示jquery日期选择器?