DatePicker 显示从 0 开始的月份值

Pri*_*dar 1 java android date datepicker

我正在使用两个datepickers一用于start date一个end date in one activity,每当我选择一个月时,它都会显示错误的数字。我尝试添加+1月份值,但由于有两个datepickers,我们必须跳过start datefor 选择之前的几天,因此它不起作用。代码如下:

public static class DatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // 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);
        DatePickerDialog datePickerDialog;
        datePickerDialog = new DatePickerDialog(getActivity(), this, year,
                month, day);
        return datePickerDialog;
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user

        cval_from.setText(day + "/" + month + "/" + year);
    }
}

public static class ToDatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
    // Calendar startDateCalendar=Calendar.getInstance();
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        String getfromdate = cval_from.getText().toString().trim();
        String getfrom[] = getfromdate.split("/");
        int year, month, day;
        year = Integer.parseInt(getfrom[2]);
        month = Integer.parseInt(getfrom[1]);
        day = Integer.parseInt(getfrom[0]);
        final Calendar c = Calendar.getInstance();
        c.set(year, month, day + 1);
        DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
        datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis());
        return datePickerDialog;
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {

        cval_to.setText(day + "/" + month + "/" + year);
    }

}
Run Code Online (Sandbox Code Playgroud)

这里,cval_fromstart datecval_toend date,现在如果我添加month+1cval_fromcval_to日期的选择,从下个月开始。例如,如果我选择26/1/2018cval_from,我必须选择cval_to27/1/2018起。整个月都被跳过了。

任何人都可以帮忙吗?

Zee*_*ro0 5

根据developer.android.com月份的范围从 0 到 11。

所以你需要把它加1。

public void onDateSet(DatePicker view, int year, int month, int day) {
    int selectedMonth = month+1;
    cval_to.setText(day + "/" + selectedMonth + "/" + year);
}
Run Code Online (Sandbox Code Playgroud)