4

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

4

1 回答 1

12

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

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" />

于 2014-03-24T05:31:58.893 回答