2015-04-21 4 views
1

Так что я читал другие сообщения, но все равно не могу заставить его работать правильно. Я хочу отключить возможность для кого-то выбрать дату в будущем из моего datepickerfragment. Любая помощь будет оценена, спасибо!Как отключить выбор даты в DatePickerFragment в Android?

[UPDATE] 4/26/15 - Решенный, каждый, кто прокомментировал или ответил - их решение работает.

Функция, которая вызывает DatePicker:

mSearchButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      DatePickerFragment datePickerFragment = new DatePickerFragment(); 
      datePickerFragment.show(getSupportFragmentManager(), "datepicker"); 

     } 
    }); 

код DatePickerFragment:

public static class DatePickerFragment extends DialogFragment 
     implements DatePickerDialog.OnDateSetListener { 

    public EditText editText; 
    DatePicker dpResult; 

    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     return new DatePickerDialog(getActivity(), this, year, month, day); 

    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 

     Intent goSearchSelectedDate = new Intent(getActivity(), SearchByDate.class); 
     goSearchSelectedDate.putExtra("day", String.valueOf(day)); 
     goSearchSelectedDate.putExtra("month", String.valueOf(month)); 
     goSearchSelectedDate.putExtra("year", String.valueOf(year)); 
     Log.d("month", String.valueOf(year)); 
     startActivity(goSearchSelectedDate); 

    } 
} 
+1

возможно дубликат [Disable будущие даты в подборщика Android дата] (http://stackoverflow.com/questions/6116920/disable-future-dates-in -android-date-picker) – WISHY

+0

Спасибо WISHY, попробовал пару из них. Я знаю, что я пропустил что-то очень простое, но просто не мог заставить его работать с другими сообщениями. –

+1

Вам нужно установить максимальную дату на datepicker в oncreatedialog – WISHY

ответ

6

Вам нужно добавить только одну строку в вашем DatePickerDialog

datePicker.getDatePicker().setMaxDate(calendar.getTimeInMillis()); 
+0

Могу ли я добавить его в свой файл datepickerfragmentcode? –

+0

Да, где вы создали 'DatePickerDialog' –

2

Я взял всякие решения и обновил свой код. Смотри ниже. Я прокомментировал старый код для всех, чтобы увидеть разницу. Спасибо всем за помощь!

public static class DatePickerFragment extends DialogFragment 
     implements DatePickerDialog.OnDateSetListener { 

    public EditText editText; 
    DatePicker dpResult; 

    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day); 
     dialog.getDatePicker().setMaxDate(new Date().getTime()); 

     return dialog; 
     //return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 

     Intent goSearchSelectedDate = new Intent(getActivity(), Searched_Game_ListView.class); 
     Intent goSearchSelectedDate = new Intent(getActivity(), SearchByDate.class); 
     goSearchSelectedDate.putExtra("day", String.valueOf(day)); 
     goSearchSelectedDate.putExtra("month", String.valueOf(month)); 
     goSearchSelectedDate.putExtra("year", String.valueOf(year)); 
     Log.d("month", String.valueOf(year)); 
     startActivity(goSearchSelectedDate); 

    } 
} 

Я называю его:

mSearchButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      DatePickerFragment datePickerFragment = new DatePickerFragment(); 
      datePickerFragment.show(getSupportFragmentManager(), "datepicker"); 
     } 
    });