2016-03-22 75 views
0

選擇日期和重開日期選擇器對話框中,將其設置爲當前日期...未選定的日期...我該如何設置選定日期日期選擇器用戶後重新打開日期選擇器對話框,在這裏是我的代碼設置用戶之後,選擇日期日期選擇器對話框

@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); 
    } 

我已經搜索,但我無法得到它的工作,任何幫助嗎?

回答

2

聲明這個全球:

Calendar selectedDate = Calendar.getInstance(); 

然後設定日期的建設者和當用戶選擇selectedDate像下面的日期保存。這將設置當前日期,直到用戶選擇日期。

@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

感謝...再次,你總是幫助我,我的項目:) – meeftah

+0

什麼,如果我想從EditText上設置日期日期選擇器,沒有太大麻煩你...... – meeftah

+0

分配從EditText上selectedDate? – 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

如果我使用這段代碼,它會改變我到目前爲止編寫的所有代碼......你會調整,以便我可以把它放在我的代碼中嗎? – meeftah

相關問題