質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

2回答

4396閲覧

Androidアプリ開発 DatePickerDialogのボタンについて

退会済みユーザー

退会済みユーザー

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/02/13 18:13

閲覧いただき、ありがとうございます。
今現在、Androidアプリの開発を行っております。

DatePickerDialogで、Positiveボタンを押したときのみ、TextViewに設定する、ということをやりたいと思っております。
様々なサイトを参考にしてみたのですが、うまくいきません。
コードは以下の通りです。
よろしくお願いいたします。

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int mYear;
int mMonth;
int mDay;

DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(android.widget.DatePicker datePicker,
int year,
int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
}
};

DatePickerDialog datePickerDialog = new DatePickerDialog(
this,
dateSetListener,
year, month,
day);

datePickerDialog.setButton(
DialogInterface.BUTTON_POSITIVE,
"設定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
textView = (TextView)findViewById(R.id.textView);
textView.setText(mYear + "年" + (mMonth + 1) + "月" + mDay + "日");
}
}
);

datePickerDialog.setButton(
DialogInterface.BUTTON_NEGATIVE,
"キャンセル",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {

} }

);

datePickerDialog.show();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

lang

1DatePickerDialog datePickerDialog = new DatePickerDialog( 2 this, 3 dateSetListener, 4 year, month, 5 day);

ここじゃないでしょうか?
ここは初期値設定に当たるので、存在しない変数year,month,dayは参照できません。

lang

1DatePickerDialog datePickerDialog = new DatePickerDialog( 2 this, 3 dateSetListener, 4 mYear, mMonth, 5 mDay);

こう直したらどうでしょうか?

投稿2015/02/14 04:56

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

onClick時に手動で

lang

1DatePicker datePicker = datePickerDialog.getDatePicker(); 2 dateSetListener.onDateSet(datePicker, datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth());

と呼び出します。

少し調べてみた感じ、OnDateSetListenerはActivityのコールバックで宣言しなくてはいけないとか、ICS移行だと使えないなどちょっと情報があやふやだったので根本的な原因は分かりません。
あくまで上記の手段は妥協案なので、期待にそぐわない場合はベストアンサーを避けて別の回答をお待ち頂ければと思います。

投稿2015/02/13 20:33

noppefoxwolf

総合スコア231

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問