トップページ > プログラム > 2015年02月26日 > CmsfWZXg

書き込み順位&時間帯一覧

15 位/217 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000010200000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Androidプログラミング質問スレ revision47 [転載禁止]©2ch.net

書き込みレス一覧

Androidプログラミング質問スレ revision47 [転載禁止]©2ch.net
585 :デフォルトの名無しさん[sage]:2015/02/26(木) 14:07:17.53 ID:CmsfWZXg
FragmentからActivityに何かしらの通知を返したいけど、startActivityForResult()以外でいい方法ってありますか?
リスナー登録してもらうのもイマイチなのでフレームワークで提供されてる機構で考えてます
Androidプログラミング質問スレ revision47 [転載禁止]©2ch.net
591 :デフォルトの名無しさん[]:2015/02/26(木) 16:09:20.93 ID:CmsfWZXg
585です、説明が足りずすいませんでした
補足すると、Activity内のロジックが多くなったのでロジック毎にUI無しのFragmentに処理を書くように変更してます
処理の流れとしては

1. ActivityからXXXFragmentに処理依頼
Activity#getFragmentManager().beginTransaction().add(XXXFragment).commit()

2. XXXFragmentで処理開始
XXXFragment#onStart() {
ここで処理開始
}

3. XXXFragmentの処理が完了したのでActivityに完了通知
XXXFragment#startActivityForResult(getActivity().getIntent(), XXX);

4. XXXFragmentの完了処理
Activity#onActivityResult() {
XXXFragmentから処理結果取得
getSupportFragmentManager().beginTransaction().remove(XXXFragment).commit();
}

3の処理が適しているのかが困っているところで、>>587にあるように
XXXFragment#getActivity().notifyResult()
のようにAPIをActivity側に用意するのが一番簡単ですが、
そうするとFragmentが使う側のActivityにAPIを用意してもらう制約が生まれるので、
再利用性の低い実装になると懸念しています。
Frameworkの機構を利用してうまくやる方法を教えていただければと思います。
Androidプログラミング質問スレ revision47 [転載禁止]©2ch.net
594 :デフォルトの名無しさん[]:2015/02/26(木) 16:38:40.77 ID:CmsfWZXg
>>592 - 593
ありがとうございます
デベロッパーガイドは見ていたのですが、Fragment#onAttach()でリスナーを登録する前提なので
Activity自身にCallBackを実装しないといけないのがどうも。。。
ただ、これが標準的なやり方なのは理解しているので今回はこの方法でやろうかなと思います。
ありがとうございました


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。