【问题标题】:Calendar with DatePicker always returns last month even if I add + 1带有 DatePicker 的日历总是在上个月返回,即使我添加 + 1
【发布时间】:2015-05-27 14:33:33
【问题描述】:

我试图从 Calendar 对象中获取 Year-Month-Day,我知道月份从索引 0 开始。所以我在月份对象中添加了 +1。但它仍然给了我从选择到日期选择器的最后一个月。

我哪里出错了?

这就是我正在尝试的方式。

这是我的fragmentActivity

public class MyDatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int month = calendar.get(Calendar.MONTH) + 1;
        int year = calendar.get(Calendar.YEAR);
        DatePickerDialog myDatePicker =
                new DatePickerDialog(getActivity(), this, year, month, day);
        return myDatePicker;
    }

    @Override
    public void onDateSet(DatePicker datePicker, int year, int month, int day) {
        EditText et = (EditText) getActivity().findViewById(R.id.editTextDate1);
        et.setText(year+"-"+month+"-"+day);
    }

}

这是我的 MainActivity

EditText ed2;
ed2 = (EditText) findViewById(R.id.editTextDate2);
ed2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DialogFragment myDatePickerFragment = new MyDatePickerFragmentTo();
                myDatePickerFragment.show(getSupportFragmentManager(),"datePicker");
            }
        });

【问题讨论】:

    标签: java android datepicker calendar


    【解决方案1】:

    onDateSet() 以从零开始的月份调用,如 documentation 中所述:

    monthOfYear 为与Calendar 兼容而设置的月份 (0-11)。

    您也需要在那里调整月份值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2015-07-28
      • 1970-01-01
      相关资源
      最近更新 更多