ダイアログから、フラグメント(アクティビティ)に値を渡す方法が分かりません。

3,828 views
Skip to first unread message

加藤

unread,
Nov 15, 2013, 2:07:57 AM11/15/13
to android-g...@googlegroups.com
初めまして。加藤と申します。
Android開発を初めて日が浅いので、悩んでおります。

アクティビティに、アクションバーのタブナビゲーションでフラグメントを切り替えているレイアウトにて、
アクティビティのレイアウト内にある、ボタンを押して、ダイアログを表示して、検索条件を絞り込み、
結果をアクティビティのLinearLayoutに表示したいと思っております。
現在、アクティビティのテキストボックス等で組み立てたSQL文は実行でき、結果も思い通り表示できていますが、
場所が狭いので、ダイアログでSQLの組み立てをし、SQL文を返してアクティビティで結果を表示というような事がやりたいです。

ダイアログのいろいろなサンプルを見て、ダイアログ内のOKボタンなどを押して、Toastを表示や、テキストビューに
値を表示などのものはありましたが、例えば、インテントの時に、Bundleに値をセットして、インテント先で受け取るといったような
変数を受け渡す方法がいまいち分かりませんでした。

ダイアログ内で作成した文字列を、アクティビティで受け取り、扱うには、onClick内でどのように記述すればよいのでしょうか。

awwa

unread,
Nov 15, 2013, 2:29:51 AM11/15/13
to android-g...@googlegroups.com


2013年11月15日 16:07 加藤 <sukek...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
awwa <aww...@gmail.com>
Twitter http://twitter.com/awwa500
Blog http://awwa500.blogspot.com/

Hirokazu Fukami

unread,
Nov 15, 2013, 2:42:10 AM11/15/13
to android-g...@googlegroups.com
こんにちはfkmです。

FragmentとActivityがごっちゃになってる感がありますが。。。

1. Fragment上のボタンを押すとダイアログが出て、
2. ユーザーに何か入力してもらって
3. その結果をFragmentに返す

という流れで説明します。

1. Fragment上のボタンを押すとダイアログが出て
独自のDialogFragmentのインスタンスを作成し、show()を呼びます。
この時、DialogFragmentのsetTargetFragment(fragment, requestCode)で、呼び出し元の
Fragmentをセットしておきます。

2. ユーザーに何か入力してもらって
ダイアログ上のボタンを押された時に次の処理をやります。

3. その結果をFragmentに返す
1番でセットした呼び出し元のFragmentはgetTargetFragment()で取得できます。
fkmの場合、結合度を下げる意味から、呼び出し元のFragmentの
onActivityResult(requestCode, resultCode, data);
を呼ぶことで、呼び出し元に結果を伝えています。
ダイアログに入力された文字列などは、第三引数のIntentに詰めておきます。

こんな感じでどうでしょうか?








2013/11/15 加藤 <sukek...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

加藤

unread,
Nov 15, 2013, 4:32:25 AM11/15/13
to android-g...@googlegroups.com
お返事ありがとうございます。お二方のご意見を参考にいたしまして、ダイアログで入力した値を、フラグメント側のToastで表示する
事が出来ました。この構造を組み替えていけば、なんとかやりたかったことが出来そうです。
ありがとうございます。


2013年11月15日金曜日 16時42分10秒 UTC+9 fkm:
> このグループから退会し、メールの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-group-ja...@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages