Android Studio - Datepicker未显示当年的日历

时间:2016-10-01 05:06:54

标签: android android-studio datepicker

在我的Android项目中,我有一个直接从1900年开始的DatePicker。

以下是源代码: -

private void selectDate()
{
    dpd = new DatePickerDialog(getActivity(),
            new DatePickerDialog.OnDateSetListener()
            {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
                {
                    c.set(year, monthOfYear, dayOfMonth);
                    selDate=year+"/"+monthOfYear+"/"+dayOfMonth;
                    Toast.makeText(getActivity(), dayOfMonth + "-" + (monthOfYear + 1) + "-" + year, Toast.LENGTH_LONG).show();
                }
            }, mYear, mMonth, mDay);
    dpd.show();
}

以下是相同的屏幕截图: -

Android DatePicker

正如您所见,日历从1900年开始,但我希望它从当前日期开始

此外,您可以在左上角看到'2',点击'2'我可以将年份改为我想要的;但我不想在我的日期选择器中使用'2'符号/如何将名称'2'更改为'更改年份'文本?

该怎么办?我需要在哪里加入必要的变更?

提前致谢。

我编辑了我的代码如下,现在我得到的是当前日期,即2016年10月

private void selectDate()
{
    dpd = new DatePickerDialog(getActivity(),
            new DatePickerDialog.OnDateSetListener()
            {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
                {
                    c.set(Calendar.YEAR, year);
                    c.set(Calendar.MONTH, monthOfYear);
                    c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                    selDate=year+"/"+monthOfYear+"/"+dayOfMonth;
                    Toast.makeText(getActivity(), dayOfMonth + "-" + (monthOfYear + 1) + "-" + year, Toast.LENGTH_LONG).show();
                }
            }, mYear, mMonth, mDay);
    dpd.getDatePicker().setMinDate(System.currentTimeMillis());
    dpd.show();
}

这是更新的屏幕截图:

enter image description here

5 个答案:

答案 0 :(得分:1)

试试这个:

Calendar c = Calendar.getInstance();

c.setTimeInMillis(System.currentTimeMillis());

答案 1 :(得分:1)

查看此代码段

while (true) {
    echo '<title>'.$a.'</title>';
    sleep(5)
    echo '<title>'.$b.'</title>';
}

答案 2 :(得分:0)

调用DatePickerDialog

时,需要将当前日期作为参数传递
 // Use the current date as the default date in the picker
    final Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);

根据您的代码,我看不到您为mYearmMonthmDate分配值的位置。

答案 3 :(得分:0)

我希望这段代码能为你工作..

String strThatDay = datePicker.getYear() + "/" + (datePicker.getMonth() + 1) + "/" + datePicker.getDayOfMonth();
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
            Date choosenDate = null;
            try {
                choosenDate = formatter.parse(strThatDay);//catch exception
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            final Calendar todayCal = Calendar.getInstance();
            todayCal.setTime(choosenDate);

答案 4 :(得分:0)

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

DatePickerDialog dialog =
    new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
dialog.show();

您可以通过这种方式初始化您的选择器。 fork