小编Ota*_*oKR的帖子

当用户在字段中编辑值时,自定义DatePicker作为首选项不会保留值

我创建了一个DatePickerPreference,即我扩展了DialogPreference并在其中创建了一个DatePicker对象并让它几乎完美地工作.当您单击上下箭头并保存所选值时,它会更改值.

但是,如果您在字段内单击并在那里键入新值,则不会保存更新的值!使用箭头时,始终调用onDateChanged()方法; 当用户进入该字段并对其进行编辑时,如果他选择另一个字段,它将仅调用onDateChanged(在这种情况下,如果他编辑最后一个字段并且只是点击OK,则将忽略最后一次编辑).我发现Eric Besette在他的TimePickerPreference上发布了类似的问题

这是我的代码:


    public class DatePickerPreference extends DialogPreference implements  
OnDateChangedListener, OnDateSetListener {

    @Override
    protected View onCreateDialogView() {
        DatePicker picker = new DatePicker(getContext());
        mDate = getPersistedLong(System.currentTimeMillis());

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(mDate);

        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int month = calendar.get(Calendar.MONTH);
        int year = calendar.get(Calendar.YEAR);

        picker.init(year, month, day, this);
        return picker;
    }

    public void onDateChanged(DatePicker view, int year, int monthOfYear,  
            int dayOfMonth) {
        mDate = (new Date(year - 1900, monthOfYear, dayOfMonth)).getTime();
    }

    public void onDateSet(DatePicker view, int year, int monthOfYear, …
Run Code Online (Sandbox Code Playgroud)

android datepicker preference

6
推荐指数
1
解决办法
6080
查看次数

标签 统计

android ×1

datepicker ×1

preference ×1