2016-03-22 15 views
0

kullanıcı, tarihi seçip tarihçiyi yeniden açar iletişim kutusunu açtıktan sonra, seçili tarihe değil ... geçerli tarihe ayarlandı ... Kullanıcı datepicker iletişim kutusunu yeniden açtıktan sonra seçili tarihe tarih ayarını nasıl yapabilirim? benim kodumseçili tarihi datepicker iletişim kutusuna ayarla

@Override 
    public void onClick(View v) { 
     Dialog.Builder builder = null; 
     Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR)+10; 
     c.set(year, c.get(Calendar.MONTH), c.get(Calendar.DATE)); 
     builder = new DatePickerDialog.Builder(R.style.CustomStyle_DatePicker) { 
      @Override 
      public void onPositiveActionClicked(DialogFragment fragment) { 
       DatePickerDialog dialog = (DatePickerDialog) fragment.getDialog(); 
       String date = dialog.getFormattedDate(SimpleDateFormat.getDateInstance()); 
       selected_date.setText(date); 
       super.onPositiveActionClicked(fragment); 
      } 

      @Override 
      public void onNegativeActionClicked(DialogFragment fragment) { 
       super.onNegativeActionClicked(fragment); 
      } 
     }.dateRange(System.currentTimeMillis() - 1000, c.getTimeInMillis()); 
     builder.positiveAction("OK") 
       .negativeAction("CANCEL"); 
     DialogFragment fragment = DialogFragment.newInstance(builder);; 
     fragment.show(getFragmentManager(), null); 
    } 

Çevremizde arama yaptım ama çalışmadım, herhangi bir yardım alamadım? Bu küresel

cevap

2

Declare:

Calendar selectedDate = Calendar.getInstance(); 

Sonra oluşturucu için tarihi ayarlamak ve kullanıcı aşağıda gibi SelectedDate için tarih seçtiğinde kaydedin. Bu, kullanıcı bir tarih seçinceye kadar geçerli tarihi ayarlayacaktır.

@Override 
    public void onClick(View v) { 
     Dialog.Builder builder = null; 
     Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR)+10; 
     c.set(year, c.get(Calendar.MONTH), c.get(Calendar.DATE)); 
     builder = new DatePickerDialog.Builder(R.style.CustomStyle_DatePicker) { 
      @Override 
      public void onPositiveActionClicked(DialogFragment fragment) { 
       DatePickerDialog dialog = (DatePickerDialog) fragment.getDialog(); 
       String date = dialog.getFormattedDate(SimpleDateFormat.getDateInstance()); 
       selected_date.setText(date); 
       selectedDate.set(dialog.getYear(),dialog.getMonth(), dialog.getDay()); 
       super.onPositiveActionClicked(fragment); 
      } 

      @Override 
      public void onNegativeActionClicked(DialogFragment fragment) { 
       super.onNegativeActionClicked(fragment); 
      } 
     }.dateRange(System.currentTimeMillis() - 1000, c.getTimeInMillis()).date(selectedDate.get(Calendar.DATE), 
         selectedDate.get(Calendar.MONTH) 
         , selectedDate.get(Calendar.YEAR)); 
     builder.positiveAction("OK") 
       .negativeAction("CANCEL"); 
     DialogFragment fragment = DialogFragment.newInstance(builder); 
     fragment.show(getFragmentManager(), null); 
    } 
+0

Teşekkürler ... Bir kez daha, her zaman projemde bana yardımcı oluyorsunuz :) – meeftah

+0

ve edittext'ten datepicker'a tarih ayarlamak istiyorum, sizin için çok fazla sorun yok ... – meeftah

+0

selectitte atamak edittext? – Dhina

0
DatePickerDialog datePickerDialog ; 


    private void initialiseDatePicker(){ 
     final Calendar c = Calendar.getInstance(); 
     int mYear; 
     int mMonth; 
     int mDay; 

     //this is previous set date 
     String date = dobButton.getText().toString().trim(); 
     //this is previous set date 

if (date != null && date.length() > 0) { 

//if you have previous set date 
      String data[] = date.split("-"); 
      mYear = Integer.parseInt(data[2]); 

      mMonth = Integer.parseInt(data[1]); 
      mMonth = mMonth - 1; 
      mDay = Integer.parseInt(data[0]); 
     } else { 

//if you dont have previous set date then display current date 
      mYear = c.get(Calendar.YEAR); 
      mYear = mYear; 
      mMonth = c.get(Calendar.MONTH); 

      mDay = c.get(Calendar.DAY_OF_MONTH); 
     } 

     int mYear1 = c.get(Calendar.YEAR); 
     int mMonth1 = c.get(Calendar.MONTH); 
     int mDay1 = c.get(Calendar.DAY_OF_MONTH); 

     Calendar maxDate = Calendar.getInstance(); 
     maxDate.set(mYear1, mMonth1, mDay1); 

     Calendar minDate = Calendar.getInstance(); 
     minDate.set(mYear1 - 150, mMonth1, mDay1); 

     datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

      @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
       String dateOfBirth1 = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; 
       dobButton.setText(dateOfBirth1); 

      } 
     }, mYear, mMonth, mDay); 

     final DatePicker datePicker = datePickerDialog.getDatePicker(); 

     datePicker.setMinDate(minDate.getTimeInMillis()); 
     datePicker.setMaxDate(maxDate.getTimeInMillis()); 




     datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
         datePicker.clearFocus(); 

          int year = datePicker.getYear(); 
          int monthOfYear=datePicker.getMonth(); 
          int dayOfMonth = datePicker.getDayOfMonth(); 

         String dateOfBirth1 = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; 

         dobButton.setText(dateOfBirth1); 

         } 
        }); 



     datePickerDialog.setOnCancelListener(new OnCancelListener() { 

      @Override 
      public void onCancel(DialogInterface dialog) { 
       dobButton.setText(dateOfBirth); 
      } 
     }); 

    } 
+0

Bu kodu kullanırsam, şu ana kadar yazdığım kodun tamamını değiştirir ... koduma koyabilmek için ayarlama yapar mıydınız? – meeftah

İlgili konular