Android Studio - Datepicker未显示当年的日历 [英] Android Studio - Datepicker not showing calendar from current year

查看:254
本文介绍了Android Studio - Datepicker未显示当年的日历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



这是源代码: -

  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();
}

这是一个截图: -





正如你可以看到日历从1900开始,但我想要从当前日期开始



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



应该做什么?



提前感谢



我已经编辑过我的代码如下,现在我得到当前日期,即oct 2016

  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)+ - +年,Toast.LENGTH_LONG).show();
}
},mYear,mMonth,mD ay);
dpd.getDatePicker()。setMinDate(System.currentTimeMillis());
dpd.show();
}

这里是更新的屏幕截图:



解决方案

查看此代码片段



  DatePickerDialog dpd = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener(){
final Calendar myCalendar = Calendar.getInstance();
@Override
public void onDateSet(DatePicker view,int year,
int monthOfYear,int dayOfMonth){
// TODO自动生成的方法存根
myCalendar.set(Calendar.YEAR,year);
myCalendar.set(Calendar.MONTH,monthOfYear);
myCalend ar.set(Calendar.DAY_OF_MONTH,dayOfMonth);
String myFormat =yyyy-MM-dd; //你需要放在这里
SimpleDateFormat sdf = new SimpleDateFormat(myFormat,Locale.US);

// expiry.setText(sdf.format(myCalendar.getTime()));

}
},mYear,mMonth,mDay);
dpd.getDatePicker()。setMinDate(System.currentTimeMillis());
dpd.show();


in my Android Project i have a DatePicker which directly starts from year 1900.

Here is the source code:-

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();
}

Here is a screenshot of the same:-

As you can see the calendar starts from 1900 but i want it to start from the current date

Also, you can see '2' written on the top left corner, on clicking '2' i can change the year to whatever i want to; but I don't want the '2' symbol in my Date Picker/ how i should i change the name '2' to 'Change year' text?

What should be done? Where do i need to incorporate the necessary changes?

Thanks in advance.

I have edited my code as follows and now i am getting the current date i.e oct 2016

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();
}

And here is the updated screenshot:

解决方案

Check out this code snippet

   DatePickerDialog dpd = new DatePickerDialog(MainActivity.this,
                new DatePickerDialog.OnDateSetListener() {
                    final Calendar myCalendar = Calendar.getInstance();
                    @Override
                    public void onDateSet(DatePicker view, int year,
                                          int monthOfYear, int dayOfMonth) {
                        // TODO Auto-generated method stub
                        myCalendar.set(Calendar.YEAR, year);
                        myCalendar.set(Calendar.MONTH, monthOfYear);
                        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        String myFormat = "yyyy-MM-dd"; //In which you need put here
                        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

                     //   expiry.setText(sdf.format(myCalendar.getTime()));

                    }
                }, mYear, mMonth, mDay);
        dpd.getDatePicker().setMinDate(System.currentTimeMillis());
        dpd.show();

这篇关于Android Studio - Datepicker未显示当年的日历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆