私はMaterialDateTimePickerを使用しています。毎月の特定の曜日(日曜日など)を無効にしたいこのpostに記載されていますが、私たちはこのライブラリを使って行うことができますが、how to disable particular weekdays?
短いコードを使用して月数を制限することはできますが、月曜日の数を制限して平日の選択を無効にすることはできません。MaterialDateTimePickerの毎月の日曜日を無効にする
public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
private TextView dateTextView;
private CheckBox modeDarkDate;
private CheckBox vibrateDate;
private CheckBox dismissDate;
private CheckBox limitDates;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find our View instances
dateTextView = (TextView)findViewById(R.id.date_textview);
Button dateButton = (Button)findViewById(R.id.date_button);
modeDarkDate = (CheckBox)findViewById(R.id.mode_dark_date);
vibrateDate = (CheckBox) findViewById(R.id.vibrate_date);
dismissDate = (CheckBox) findViewById(R.id.dismiss_date);
limitDates = (CheckBox) findViewById(R.id.limit_dates);
// check if picker mode is specified in Style.xml
modeDarkDate.setChecked(Utils.isDarkTheme(this, modeDarkDate.isChecked()));
// Show a datepicker when the dateButton is clicked
dateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar now = Calendar.getInstance();
DatePickerDialog dpd = DatePickerDialog.newInstance(
MainActivity.this,
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.setThemeDark(modeDarkDate.isChecked());
dpd.vibrate(vibrateDate.isChecked());
dpd.dismissOnPause(dismissDate.isChecked());
if (limitDates.isChecked()) {
/* Calendar[] dates = new Calendar[13];
for(int i = -6; i <= 6; i++) {
Calendar date = Calendar.getInstance();
date.add(Calendar.MONTH, i);
dates[i+6] = date;
} */
// Add code here to disbale weekdays like Sundays.
// dpd.setSelectableDays(dates);
}
dpd.show(getFragmentManager(), "Datepickerdialog");
}
});
}
@Override
public void onResume() {
super.onResume();
DatePickerDialog dpd = (DatePickerDialog) getFragmentManager().findFragmentByTag("Datepickerdialog");
if(dpd != null) dpd.setOnDateSetListener(this);
}
@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
String date = "You picked the following date: "+dayOfMonth+"/"+(++monthOfYear)+"/"+year;
dateTextView.setText(date);
}
}
この参照を確認してください:http://stackoverflow.com/questions/14118894/how-to-get-day-from-specified-date-in-android –
クイック返信ありがとう。カレンダー[]配列にこのスイッチケースを追加するにはどうすればいいですか? –
datepickerやカスタムカレンダービューを使用して日曜日やその他の曜日を無効にする方法が分かっている場合は、コメントしてください。 –