Android:DatePickerDialogで取得した値をDBに保存

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();
        }
    }

タグ Android | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です