2017-04-18 83 views
-1

當我按下右箭頭日期在textView增加現在我需要在datePicker的對話框上設置日期。當我按刷新然後它設置爲當前日期,但不是當我按左箭頭和右箭頭。我該怎麼做才能做到這一點?DatePicker的當前日期將在日期選取器的對話框中突出顯示

iv_refresh.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        count = 0; 
        getDate(count); 
        setDateTimeField(); 
       } 
      }); 

      rightarrow.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        getDate(1); 


       } 
      }); 

      leftarraow.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        getDate(-1); 

       } 
      }); 

      tv_date.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        icount=0; 
        DOBPickerDialog.show(); 

       } 
      }); 

    public long printDifference(Date startDate, Date endDate){ 

      //milliseconds 
      long different = endDate.getTime() - startDate.getTime(); 

      System.out.println("startDate : " + startDate); 
      System.out.println("endDate : "+ endDate); 
      System.out.println("different : " + different); 

      long secondsInMilli = 1000; 
      long minutesInMilli = secondsInMilli * 60; 
      long hoursInMilli = minutesInMilli * 60; 
      long daysInMilli = hoursInMilli * 24; 

      long elapsedDays = different/daysInMilli; 
      different = different % daysInMilli; 

      long elapsedHours = different/hoursInMilli; 
      different = different % hoursInMilli; 

      long elapsedMinutes = different/minutesInMilli; 
      different = different % minutesInMilli; 

      long elapsedSeconds = different/secondsInMilli; 

      System.out.printf(
      "%d days, %d hours, %d minutes, %d seconds%n", 
      elapsedDays, 
      elapsedHours, elapsedMinutes, elapsedSeconds); 

      return elapsedDays; 

      } 


    private void getDate(int i) { 
     count = count + i; 
     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.DAY_OF_YEAR, count); 
     currenttoday = dateFormat.format((calendar.getTime())); 
    // currenttoday = currenttoday.replace("-","/"); 
     tv_date.setText(currenttoday); 
    // Toast.makeText(LandingActivity.this, currenttoday, Toast.LENGTH_SHORT).show(); 


     Intent intent = new Intent(); 
     intent.setAction("DateActivity"); 
     intent.putExtra("date", currenttoday); 
     sendBroadcast(intent); 
    } 

     /** 
     * setDatetimefield method is used to set the selected date 
     * from the datepicker to the text view 
     */ 

     private void setDateTimeField() { 

      java.util.Calendar newCalendar = java.util.Calendar.getInstance(); 


      DOBPickerDialog = new DatePickerDialog(LandingActivity.this,R.style.pickertheme, new DatePickerDialog.OnDateSetListener() { 


       public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
        Calendar newDate = Calendar.getInstance(); 
        newDate.set(year, monthOfYear, dayOfMonth); 
        String selectDate = dateFormatter.format(newDate.getTime()); 
        tv_date.setText(selectDate); 

        try { 
        Date date1 = dateFormatter.parse(currenttoday); 
        String newDat = dateFormat.format(newDate.getTime()); 
        Date date2 = dateFormatter.parse(newDat); 
        long diffDays = printDifference(date1, date2); 
        icount = (int) diffDays; 
        getDate(icount); 

      } catch (ParseException e) { 
        e.printStackTrace(); 
      } 

      } 

      }, newCalendar.get(java.util.Calendar.YEAR), newCalendar.get(java.util.Calendar.MONTH), newCalendar.get(java.util.Calendar.DAY_OF_MONTH)); 

      } 

回答

0

DatePickerDialog(上下文的背景下, INT themeResId, DatePickerDialog.OnDateSetListener聽衆, 年整型, INT monthOfYear, INT請將dayOfMonth)

在這裏,你需要通過一年,month和dayOfMonth信息,你最初想在你的選擇器中顯示。

java.util.Calendar newCalendar = java.util.Calendar.getInstance();

在這裏,你得到日曆的一個新實例,這是默認設置爲當前日期。並通過調用newCalendar.get(java.util.Calendar.YEAR), newCalendar.get(java.util.Calendar.MONTH), newCalendar.get(java.util.Calendar.DAY_OF_MONTH) 告訴日期選擇器將其設置爲當前日期。所以在這裏你需要傳遞你的文本視圖中的日期信息

相關問題