DatePickerDialog和EditText配合使用

1.根据当前时间给查询起始结束时间赋值。

     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date startDate = new Date(System.currentTimeMillis() - mDayDefault * 24 * 60 * 60 * 1000);//获取起始时间(提前n天)
        Date endDate = new Date(System.currentTimeMillis());//获取当前时间
        mStartCalendar = Calendar.getInstance();
        mEndCalendar = Calendar.getInstance();
        mEndCalendar.setTime(endDate);
        mStartCalendar.setTime(startDate);
        idStartdateEdittext.setText(formatter.format(startDate));
        idEnddateEdittext.setText(formatter.format(endDate));


2.初始化DatePickerDialog 并根据选择的日期 给EditText赋值

 idStartdateEdittext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int day) {
                        // TODO Auto-generated method stub
                        int mStartYear, mStartMonth, mStartDay;
                        mStartYear = year;
                        mStartMonth = (month + 1) < 10 ? 0 + (month + 1) : (month + 1);
                        mStartDay = (day < 10) ? 0 + day : day;
                        //

                        //更新EditText控件日期 小于10加0
                        idStartdateEdittext.setText(new StringBuilder().append(mStartYear).append("-")
                                .append(mStartMonth)
                                .append("-")
                                .append(mStartDay));
                        mStartCalendar.set(year, month, day);
                    }
                }, mStartCalendar.get(Calendar.YEAR), mStartCalendar.get(Calendar.MONTH),
                        mStartCalendar.get(Calendar.DAY_OF_MONTH)).show();
            }
        });
        idEnddateEdittext.setOnClickListener(new View.OnClickListener() {
                                                 @Override
                                                 public void onClick(View view) {
                                                     new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
                                                         @Override
                                                         public void onDateSet(DatePicker view, int year, int month, int day) {
                                                             // TODO Auto-generated method stub
                                                             int mEndYear, mEndMonth, mEndDay;
                                                             mEndYear = year;
                                                             mEndMonth = (month + 1) < 10 ? 0 + (month + 1) : (month + 1);
                                                             mEndDay = (day < 10) ? 0 + day : day;


                                                             //更新EditText控件日期 小于10加0
                                                             idEnddateEdittext.setText(new StringBuilder().append(mEndYear).append("-")
                                                                     .append(mEndMonth)
                                                                     .append("-")
                                                                     .append(mEndDay));

                                                             mEndCalendar.set(year, month, day);

                                                         }
                                                     }, mEndCalendar.get(Calendar.YEAR), mEndCalendar.get(Calendar.MONTH),
                                                             mEndCalendar.get(Calendar.DAY_OF_MONTH)).show();
                                                 }

                                             }
        );

注意:EditText用的是mEndMonth,而mEndCalender用的是自己的month。这里楼主就搞错了。

3.如何修改给当天的日期 按照天 周 月修改

  mFlowLayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() {
            @Override
            public void onSelected(Set<Integer> selectPosSet) {
                for (int pos : selectPosSet) {
                    Date date = new Date(System.currentTimeMillis());
                    GregorianCalendar gc = new GregorianCalendar();
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                    switch (pos) {
                        case 0:
                            gc.setTime(date);
                            idStartdateEdittext.setText(df.format(date));
                            break;
                        case 1:
                            gc.setTime(date);
                            gc.add(Calendar.WEEK_OF_MONTH, -1);
                            mStartCalendar.setTime(gc.getTime());
                            idStartdateEdittext.setText(df.format(gc.getTime()));
                            break;
                        case 2:
                            gc.setTime(date);
                            gc.add(Calendar.MONTH, -1);
                            mStartCalendar.setTime(gc.getTime());
                            idStartdateEdittext.setText(df.format(gc.getTime()));
                            break;
                    }
                    mStartCalendar.setTime(gc.getTime());
                    mEndCalendar.setTime(new Date(System.currentTimeMillis()));
                    SearchLog();
                }


            }
        });
注意 这个gc也可以用Canlender.instance 返回(工厂)。

4.为了查询起始时间从0开始,结束时间为23.59.95

        mStartCalendar.set(mStartCalendar.get(Calendar.YEAR), mStartCalendar.get(Calendar.MONTH), mStartCalendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
        mEndCalendar.set(mEndCalendar.get(Calendar.YEAR), mEndCalendar.get(Calendar.MONTH), mEndCalendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);

收工!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值