9

カスタム ListViews を持つフラグメントがいくつかあります。彼らは、リストの要素のクリックを処理するカスタム ListAdapter を使用します。この OnClickListener から別のアクティビティを開始し、いくつかの情報を Fragment に戻す必要があります。私は使用しようとします

Intent intent=new Intent(context, DataFillerActivity.class);  
((Activity) context).startActivityForResult(intent, 3);

ただし、DataFillerActivity は Fragment ではなく MainActivity に結果を返します。この問題を解決する最善の方法は何ですか? ありがとう

4

4 に答える 4

5

Steve が書いているように、フラグメントはモジュール化する必要があります。ただし、これは、通信がアクティビティを通過せず、フラグメント内に留まることを意味します。

これを解決するListAdapterには、フラグメントへの参照があることを確認し、 を使用しますfragment.startActivityForResult()。その後、結果はフラグメントのonActivityResult().

于 2013-04-05T16:47:27.983 に答える
3

フラグメントを更新するには、アクティビティを介する必要があります。これは、フラグメントがモジュール式になるように設計されているためです。

http://developer.android.com/training/basics/fragments/communicating.html

結果のアクティビティを開始すると、結果はリクエストを開始したアクティビティに渡されます。これで、目的のフラグメントにデータを渡すことができます。

于 2013-03-29T18:47:38.587 に答える
2

Activity クラスの をオーバーライドしonActivityresult、結果をアクティビティのフラグメントに渡すだけで、どちらかのフラグメントを見つけることができますが、タグに ID を付けることができます

于 2013-03-29T17:34:14.027 に答える