私はリマインダーアプリのようなものを作ろうとしています。私は今(少なくとも5分後)ではない日付と時刻をユーザーが選択できるようにしたいと思っています。また、ユーザーがあまりにも遠すぎる日付を選択しないようにしたいとします。 datePickerとtimePickerを作成して、ボタンクリックでポップアップさせましたが、最小値と最大値を設定する方法が見つかりませんでした。Datepickerとtimepicker - androidの最大値と最小値を設定する
public void showDateDialog() {
btnDate = (Button) findViewById(R.id.buttonDate);
btnDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
}
public void showTimeDialog() {
btnTime = (Button) findViewById(R.id.buttonTime);
btnTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// create a new DatePickerDialog with values you want to show
return new DatePickerDialog(this, datePickerListener, yearSet, monthSet, daySet);
// create a new TimePickerDialog with values you want to show
case TIME_DIALOG_ID:
return new TimePickerDialog(this, timePickerListener, hourSet, minuteSet, false);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
yearSet = year;
monthSet = monthOfYear + 1;
daySet = dayOfMonth;
btnDate.setText(new SimpleDateFormat("DD").format(daySet) + "-" + new SimpleDateFormat("MMM").format(monthSet) + "-" + yearSet);
}
};
private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hour, int minute) {
hourSet = hour;
minuteSet = minute;
btnTime.setText(hourSet + ":" + new SimpleDateFormat("MM").format(hourSet));
}
};
お返事ありがとうございます。それは働いた:)私は今正確に日付を設定することができます。おそらく、2つのボタンを組み合わせて1つのdateTimePickerボタンを作成しようとします。日付が選択されてから時間を設定するのが簡単になると思います。再度、感謝します。 – Kemo
それははるかに良いアプローチだよ – Dhina