Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的日期选择器面临问题_Android - Fatal编程技术网

android中的日期选择器面临问题

android中的日期选择器面临问题,android,Android,在我的申请表中,我必须注明选取者的日期,从日期到日期。我正在使用onCreateDialog()方法。所以我第一次从日期选择器中选择日期,并将它们放入编辑文本中。然后,当我再次从日期选择器中选择日期时,在日期选择器中显示我已经选择的日期。但如果我移动到同一屏幕中的其他搜索(活动),并尝试从日期选择器中选择日期,则日期选择器仍然显示以前的日期。不是当前日期 protected Dialog onCreateDialog(int id) { final Calendar c = Calend

在我的申请表中,我必须注明选取者的日期,从日期到日期。我正在使用onCreateDialog()方法。所以我第一次从日期选择器中选择日期,并将它们放入编辑文本中。然后,当我再次从日期选择器中选择日期时,在日期选择器中显示我已经选择的日期。但如果我移动到同一屏幕中的其他搜索(活动),并尝试从日期选择器中选择日期,则日期选择器仍然显示以前的日期。不是当前日期

protected Dialog onCreateDialog(int id) {
    final Calendar c = Calendar.getInstance();
    switch (id) {
    case DATE_DIALOG_ID1:
        return new DatePickerDialog(this, mDateSetListener,  c.get(Calendar.YEAR),
                c.get(Calendar.MONTH),  c.get(Calendar.DAY_OF_MONTH));


    case DATE_DIALOG_ID2:
        return new DatePickerDialog(this, mDateSetListener2,  c.get(Calendar.YEAR),
                c.get(Calendar.MONTH),  c.get(Calendar.DAY_OF_MONTH));
    }
    return null;
}

也许您可以再次尝试清楚地写下您的问题,但就我对您的问题的理解而言,您可能需要查看onDateChanged()回调方法。我假设您在onDateChanged()中有一个updateDialog()方法,您可能希望检查该方法是否存在错误

我想你看过这个链接,他们展示了如何使用日期选择器

祝你好运

对于您在“开始日期”和“截止日期”对话框中询问的第二个问题

根据你所说的,我认为有一个小错误,比如

1) 使用R.id.datepicker2代替R.id.datepicker1

2) onDateChangedListener()中有混音。我相信有更好的方法可以做到这一点,但请尝试检查是否有下面两个不同的侦听器

final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);    



DatePicker fromDatePicker = (DatePicker) findViewById(R.id.datePicker1);
    datePicker.init(mYear, mMonth, mDay, new OnDateChangedListener() {

        @Override
        public void onDateChanged(DatePicker view, int year,
                int monthOfYear, int dayOfMonth) {
            //things you want to happen when datepicker1 is changed in your case the From date field     


        }
    });

DatePicker toDatePicker = (DatePicker) findViewById(R.id.datePicker1);
    datePicker.init(mYear, mMonth, mDay, new OnDateChangedListener() {

        @Override
        public void onDateChanged(DatePicker view, int year,
                int monthOfYear, int dayOfMonth) {
            //things you want to happen when datepicker2 is changed in your case the To date field     


        }
    });

我部分解决了上述问题,但现在我面临一个问题。我有两个日期字段。一个是“开始日期”,另一个是“截止日期”。第一次,如果我点击From和To date,它们都只给出了今天的日期。现在假设我选择从2011年1月26日到2011年2月15日。然后再次单击From Date字段,Datepicker将显示2011年2月15日。有人能帮我吗?你可能想检查一下对上述答案所做的编辑,看看它是否解决了你的问题。在on Prepare Dialog switch案例中,我忘记了在每种情况下都提供中断。我认为问题不是由于缺勤中断关键字造成的。您已经使用了return关键字,这是确定的。