DatePickerDialogを使ったのが初めてで、そこで取得した値をsqliteに保存する方法はどうしたもんかなと。また、取得した値をDatePickerDialogに反映させる方法も、どうしたもんかなと。
面倒なので、まんま私が書いたコード載せます。
簡単にいうと、
DatePickerDialogに設定する場合は、
SimpleDateFormatで指定したフォーマット(yyyy-MM-dd)に合わせてDateに変換します。
DBに保存する場合は、
SimpleDateFormatで指定したフォーマット(yyyy-MM-dd)の形式の文字列を保存します。
fmt.format(date)で、”2011-03-02″のような文字列が取得できます。
private void dateEdit(final long id, String strdate) { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Date date; try { if (strdate == null || strdate.equals("")) { date = new Date(); } else { date = fmt.parse(strdate); } DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Date date = new Date(year - 1900, monthOfYear, dayOfMonth); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); mDBHelper.updateDate(id, fmt.format(date)); // カーソルを再取得して更新をListViewに反映させる mCursor = mDBHelper.getAll(); mAdapter.changeCursor(mCursor); } }, date.getYear() + 1900, date.getMonth(), date.getDate()); // クリアする dialog.setButton(DialogInterface.BUTTON_NEUTRAL, getString(R.string.txt_clear), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { mDBHelper.updateDate(id, ""); // カーソルを再取得して更新をListViewに反映させる mCursor = mDBHelper.getAll(); mAdapter.changeCursor(mCursor); } }); dialog.show(); } catch (ParseException e) { e.printStackTrace(); } }