Realm x DatePickerDialog x TimePickerDialog
Realm x DatePickerDialog x TimePickerDialog
概要
ユーザーに日時を入力させ、その情報を Realm で管理しやすいよう整形する。
日時入力
カレンダーアプリを参考に、
- DatePickerDialog
- TimePickerDialog
をそれぞれ用いる。
こちら を参考に、以下のようにすればダイアログを表示でき、入力された日時を取得できる。
DatePickerDialog
// 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 datePickerDialog = new DatePickerDialog(InputActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // ユーザーが入力完了した際に実行する処理を記述する } }, year, month, day); datePickerDialog.show();
TimePickerDialog
// Use the current time as the default values for the picker final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); TimePickerDialog timePickerDialog = new TimePickerDialog(InputActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // ユーザーが入力完了した際に実行する処理を記述する } }, hour, minute, false); timePickerDialog.show();
DatePickerDialog, TimePickerDialog への入力結果を Realm に保存
先述の方法でユーザーの入力を受け取ることができる。
Realm で管理することを考えた時、対応しているデータ型 にある通り、Date
であればそのまま扱える。
一方、上述の方法で取得できる値は、
int year, int monthOfYear, int dayOfMonth int hourOfDay, int minute
となるのでこれらを Date
に変換する。
GregorianCalendar calendar = new GregorianCalendar(year, monthOfYear, dayOfMonth, hourOfDay, minute);
Date date = calendar.getTime();
これで Realm で容易に扱うことができる。