【问题标题】:Get a particular date from server on datePicker dialog android在 datePicker 对话框 android 上从服务器获取特定日期
【发布时间】:2015-12-09 08:31:46
【问题描述】:

您好,当用户第一次打开对话框时,我正在尝试在日期选择器对话框上设置特定日期(来自服务器)。之后,日期将动态设置。但我无法在日期选择器上获得该日期。它始终显示当前的最小日期。有什么简单的方法可以解决这个问题吗?

 //My date from server

         Calendar cal = Calendar.getInstance();
           long l = Long.parseLong(posttime);
                   cal.setTimeInMillis(l);
                   int dmonth = cal.get(Calendar.DAY_OF_MONTH);
                    int dday = cal.get(Calendar.MONTH);
                    int dyear= cal.get(Calendar.YEAR);
           dateTextView.setText(dday+" " + dmonth + " " +dyear);

        //Date to be set dynamically

         Calendar now = Calendar.getInstance();
         DatePickerDialog dpd = DatePickerDialog.newInstance(
                    PostInfoUpdate.this,
                    now.get(Calendar.YEAR),
                    now.get(Calendar.MONTH),
                    now.get(Calendar.DAY_OF_MONTH)+1
            );

        dpd.setMinDate(Calendar.getInstance());
                now.add(Calendar.DAY_OF_MONTH, 30);
                dpd.setMaxDate(now);


       //To open the dialog
              public void show() {
            dpd.show(getFragmentManager(), "Datepickerdialog");

                }

      //To set the date 
            @Override
       public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
         String date = "You picked the following date: "+dayOfMonth+"/"+(++monthOfYear)+"/"+year;
          dateTextView.setText(date);
             }

【问题讨论】:

    标签: android date datepicker


    【解决方案1】:

    如果您不想设置当前时间,请不要这样做;)

            dpd.setMinDate(Calendar.getInstance());
                now.add(Calendar.DAY_OF_MONTH, 30);
                dpd.setMaxDate(now);
    

    定义你自己的“时间”(来自服务器或静态)并设置它

    编辑:

     @Override
    protected Dialog onCreateDialog(int id)
    {
        switch (id) {
            case DATE_DIALOG_ID:
                date_picker_dialog = new DatePickerDialog(this, get_date, year, month - 1, date);
                return date_picker_dialog;
        }
    }
    

    【讨论】:

    • stackoverflow.com/questions/26310750/… 您可以使用答案 1 中的方法将 datepicker onstart 设置为您想要的日期。我“引用”的代码将日期设置为当前日期(现在)。我希望这会有所帮助。
    • 我试过这个 dpd.initialize(mCallBack, dyear, dmonth, dday);我得到了我的日期,但现在我无法更改日期。
    • 我添加了一个在这里找到的代码。抱歉,我这里没有资源来测试它。但也许有帮助。
    【解决方案2】:

    如果您想插入自定义日期,当您从服务器获取日期时,将其拆分为“年”-“月”-“日”并插入到此方法中

        public dinamicDate(int year, int month, int day){
        Calendar now = Calendar.getInstance();
                    DatePickerDialog dpd = DatePickerDialog.newInstance(
                            Context,
                            year,
                            month,
                            day;
                    dpd.show(getFragmentManager(), "Datepickerdialog");
        }
    

    那你就叫它

        dinamicDate(year, month, day);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多