如何设置在Android的日期选择器的具体日期 [英] How to set a specific date in date picker in android

查看:160
本文介绍了如何设置在Android的日期选择器的具体日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了很多,但都不起作用。

我需要我的日期选择器的日期开始于9月1日2014.But启动1900
我将它消失的所有过去的日期最小日期的概念。
请你们任何人的帮助。

 公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.daty);
        点击=(ImageView的)findViewById(R.id.click);
        hdate =(的TextView)findViewById(R.id.hdate);        的timeStamp =新的SimpleDateFormat(DD / MM / YYYY)格式(新的Date(System.currentTimeMillis的()));
        hdate.setText(时间戳);
        最终日历myCalendar = Calendar.getInstance();        最后DatePickerDialog.OnDateSetListener日期=新DatePickerDialog.OnDateSetListener(){            @覆盖
            公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,
                    INT请将dayOfMonth){                          myCalendar.set(Calendar.YEAR,年);
                        myCalendar.set(的Calendar.MONTH,monthOfYear);
                        myCalendar.set(Calendar.DAY_OF_MONTH,请将dayOfMonth);
                        click.setVisibility(View.VISIBLE);
                        updateLabel();            }
            私人无效updateLabel(){
                // TODO自动生成方法存根                  字符串myFormat =DD / MM / YYYY;
                  SimpleDateFormat的SDF =新的SimpleDateFormat(myFormat,Locale.US);
                  hdate.setText(sdf.format(myCalendar.getTime()));
            }        };        hdate.setOnClickListener(新OnClickListener(){            公共无效的onClick(视图v){                DatePickerDialog datePickerDialog =新DatePickerDialog(Daty.this,日期,myCalendar
                        获得(Calendar.YEAR),myCalendar.get(的Calendar.MONTH)
                        myCalendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();
                。datePickerDialog.getDatePicker()setMaxDate(System.currentTimeMillis的());            }
        });
        click.setOnClickListener(新OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                         在意向=新意图(Daty.this,Mainy.class);
                            startActivity(在);        }
        });    }}


解决方案

您可以通过此code设置:

 日历CAL = Calendar.getInstance(Locale.ENGLISH);
datePickerDialog .init(cal.getTime()得到年()+ 1900,cal.getTime()得到月(),cal.getTime()getDay(),这一点。);

修改

要设置最小日期为你的的DatePicker 您可以通过设置:

  datePickerDialog.getDatePicker()setMinDate(System.currentTimeMillis的() -  1000)。

这台今天的日期作为最小的日期和所有过去的日期将被禁用。

注意:setMinDate在11 API引入

编辑#2

您需要创建自定义 DatePickerDialog 为:

 类DatePickerDialog1964扩展DatePickerDialog {
    DatePickerDialog1964(上下文C){
    超(C,空,2014年,1,1);    @燮pressWarnings(德precation)
    日期分=新的日期(2014年至1900年,1,1);    DatePicker的P = getDatePicker();
    CalendarView CV = p.getCalendarView(); //应该检查null
    长CUR = cv.getDate();
    INT D = cv.getFirstDayOfWeek();
    p.setMinDate(min.getTime());
    cv.setDate(CUR + 1000L * 60 * 60 * 24 * 40);
    cv.setFirstDayOfWeek((D + 1)%7);
    cv.setDate(现);
    cv.setFirstDayOfWeek(四);
  }
}

要使用这样的:

新DatePickerDialog1964(上下文).show();

I tried a lot,but all doesn't work.

I need my date picker the date starts with september 1 2014.But it starts 1900. I set minimum date concept it disappears all past dates. please guys anybody help.

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.daty);


        click=(ImageView)findViewById(R.id.click);


        hdate=(TextView)findViewById(R.id.hdate);

        timeStamp = new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis()));


        hdate.setText(timeStamp);


        final Calendar myCalendar = Calendar.getInstance();

        final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {



            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {

                          myCalendar.set(Calendar.YEAR, year);
                        myCalendar.set(Calendar.MONTH, monthOfYear);
                        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        click.setVisibility(View.VISIBLE);


                        updateLabel();

            }
            private void updateLabel() {
                // TODO Auto-generated method stub

                  String myFormat = "dd/MM/yyyy";
                  SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
                  hdate.setText(sdf.format(myCalendar.getTime()));


            }

        };

        hdate.setOnClickListener(new OnClickListener() {



            public void onClick(View v) {

                DatePickerDialog datePickerDialog = new DatePickerDialog(Daty.this,date, myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH));




                datePickerDialog.show();
                datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());    

            }


        });


        click.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                         Intent in=new Intent(Daty.this,Mainy.class);
                            startActivity(in);

        }
        });

    }

}

解决方案

You can set by this code:

Calendar cal=Calendar.getInstance(Locale.ENGLISH);
datePickerDialog .init(cal.getTime().getYear()+1900, cal.getTime().getMonth(), cal.getTime().getDay(), this);

EDIT

To set Minimum date to your DatePicker you can set it by using :

datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);

which sets today's date as minimum date and all the past dates are disabled.

Note: setMinDate was introduced in API 11

EDIT #2

You need to create custom DatePickerDialog for that :

class DatePickerDialog1964 extends DatePickerDialog {
    DatePickerDialog1964(Context c) {
    super(c, null, 2014, 1, 1);

    @SuppressWarnings("deprecation")
    Date min = new Date(2014-1900, 1, 1);

    DatePicker p = getDatePicker();
    CalendarView cv = p.getCalendarView(); // should check for null
    long cur = cv.getDate();
    int d = cv.getFirstDayOfWeek();
    p.setMinDate(min.getTime());
    cv.setDate(cur + 1000L*60*60*24*40);
    cv.setFirstDayOfWeek((d + 1) % 7);
    cv.setDate(cur);
    cv.setFirstDayOfWeek(d);
  }
}

To use this :

new DatePickerDialog1964(context).show();

这篇关于如何设置在Android的日期选择器的具体日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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