2016-09-20 13 views
2

先月、Datepickerスワイプを無効にする方法はありますか?DatePickerでスワイプを先月に無効にする

sample

私はこのlinkに出くわした、とthis。しかし、それは前の月にスワイプ/戻ることを無効にしないようだ。

理由:現在/将来の日にタスクを設定します。

+0

は私の答えを助け、あなたをしましたか?はいの場合は、受け入れることを検討してください – Marat

答えて

1

独自のDatePickerDialogクラスを作成することができます。その後、datePickerを呼び出すときにミリオン電流で必要な日付を渡します。 setMinDate()メソッドは前日を無効にし、スワイプも無効になります。

DatePickerDialogクラス:活動の内部

public class myDatePickerDialogFragment extends DialogFragment { 

    int mDay, mMonth, mYear; 
    long current; 

    // you also need to pass OnDateSetListener that is implemented in 
    // activity which is calling this datePicker 
    OnDateSetListener onSetDate; 

    public myDatePickerDialogFragment(){ 
    } 

    @Override 
    public void setArguments(Bundle args) { 
     super.setArguments(args); 
     mDay = args.getInt("day"); 
     mMonth = args.getInt("month"); 
     mYear = args.getInt("year"); 
     current = args.getLong("minDate"); 
    } 

    public void setOnDateSetListener(OnDateSetListener setDate){ 
     onSetDate = setDate; 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), onSetDate, mYear, mMonth, mDay); 

     // here you set minimum day. User cannot chose earlier dates. 
     datePickerDialog.getDatePicker().setMinDate(current); 

     return datePickerDialog; 
    } 
} 

Bundle args = new Bundle(); 
args.putInt("day", mDay); 
args.putInt("month", mMonth); 
args.putInt("year", mYear); 
args.putLong("minDate", yourCalendarObject.getTimeInMillis()); 

myDatePickerDialogFragment dialog = new myDatePickerDialogFragment(); 
dialog.setArguments(args); 
dialog.setOnDateSetListener(datePickerListener); 
dialog.show(getSupportFragmentManager(), "date"); 

がOnDateSetListener:

DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 

     // do other work after date is set here 

    } 
}; 
+0

@RoCk私の解決策を試しましたか? – Marat

関連する問題