2016-11-25 5 views
8

다른 구체적인 날짜는안 일요일과 내가 안드로이드 날짜 선택에 특히 개월 일요일 및 특정 날짜를 해제 할

내가 사용하는 날짜 선택기는 안드로이드 datepicker입니다 :

Calendar calendar = Calendar.getInstance(); 
calendar.add(Calendar.MONTH, 1); 
calendar.setMinimalDaysInFirstWeek(27); 
// calendar.add(Calendar.DAY_OF_MONTH, 1); 
//calendar.set(2016,11,23); 
// new DatePickerDialog(LoginSuccess.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 
DatePickerDialog dpDialog = new DatePickerDialog(LoginSuccess.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); 
// dpDialog.updateDate(2016,11,23); 

DatePicker datePicker = dpDialog.getDatePicker(); 
//datePicker.updateDate(2016,11,23); 
// Date newDate = calendar.getTime(); 
//dpDialog.getDatePicker().setMinDate(newDate.getTime()); 
//datePicker.init(); 

if (calendar.get(Calendar.DAY_OF_MONTH)==Calendar.SUNDAY) { 
    // dpDialog.setTitle("Sorry Sundays wont be accepted"); 
    // dpDialog.setMessage("not selected"); 
    // dpDialog.show(); 
    //datePicker.setBackgroundColor(000000); 
    Color.parseColor("#000000"); 
} 
else { 
    long now = System.currentTimeMillis(); 

    datePicker.setFirstDayOfWeek(Calendar.MONDAY); 
    datePicker.setMinDate(now + (1000 * 60 * 60 * 24 * 1)); 
    datePicker.setMaxDate(calendar.getTimeInMillis()); 
    dpDialog.show(); 
} 

public DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.MONTH, 1); 

     //calendar.set(2016,11,23); 
     display.setText("Selected Date:" + (dayOfMonth) + "/" + (monthOfYear + 1) + "/" + year); 
      Button ok = (Button) findViewById(R.id.confirm); 
      ok.setOnClickListener((v) -> { 
       Intent intent = new Intent(LoginSuccess.this, Confirm.class); 
       intent.putExtra("Date", dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
       intent.putExtra("name", (String) spinnerOsversions.getSelectedItem()); 
       intent.putExtra("email4", email3.toString()); 
       intent.putExtra("bikeno4", bikeno3.toString()); 
       intent.putExtra("fname", fname.toString()); 
       //intent.putExtras(b); 
       startActivity(intent); 
       finish(); 
      }); 
    } 

SetMinDatesetMaxdate 완벽하게 작동 되나 나는 오직 일요일과 특정 날을 비활성화시키고 싶다. 참고 값 일요일, 월요일, 화요일, 수요일, 목요일, 토요일을 일요일 사용 DAY_OF_WEEK 일치위한 calendar.get(Calendar.DAY_OF_MONTH)를 사용

+0

도움이되는지 확인하십시오. https://stackoverflow.com/questions/34727244/how-to-disable-certain-dates-in-the-android-date-picker-dialog/34730506#34730506. - https://github.com/wdullaer/MaterialDateTimePicker – vsoni

답변

2

기본 DatePickerDialog에서는 불가능합니다. MaterialDateTimePicker을 확인하시기 바랍니다.

com.wdullaer.materialdatetimepicker.date.DatePickerDialog에는 public void setSelectableDays(Calendar[] selectableDays)입니다.

2

if (calendar.get(Calendar.DAY_OF_WEEK).equals(Calendar.SUNDAY)) { 
    // dpDialog.setTitle("Sorry Sundays wont be accepted"); 
    // dpDialog.setMessage("not selected"); 
    // dpDialog.show(); 
    //datePicker.setBackgroundColor(000000); 
    Color.parseColor("#000000"); 
} 
+0

에서 사용자 지정 날짜 선택기를 사용합니다.이 예제는 OPs 예제 코드에서 if 문 하나를 수정하지만 datepicker에서 일요일을 실제로 비활성화하지 않기 때문에 사용자가 일요일을 선택할 수 없습니다. – BooleanCheese