2011-03-06 12 views
8

私はフラグメントにイベントを渡してアクティビティに渡しますので、どのようにしてアクティビティを交互に行い、フラグメントBに何かをさせるよう通知します。私はフラグメントAがクリックされたリスト項目を持っているときにカスタムリストを作成するためにBを断片化したいと思う。そこで、イベントをアクティビティに送信します。これで、フラグメントBのイベントを呼び出すアクティビティを取得するにはどうすればよいですか? ;アクティビティのフラグメントイベントを呼び出す

FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.fragmentBId); 
fragmentB.performSomeTask(); 

これは、あなたがFragmentBで公にアクセス可能にする方法がperformSomeTaskを()と呼ばれていることを想定し、もちろんです。それを行うには

答えて

32

一つの方法は、あなたの活動では、このようなものです

希望に役立ちます!

+0

私が愚かなのは、publicとstaticとして宣言されている場合は、fragment_b.doTask()を呼び出すことだけです。 – Shaun

+2

アクティビティのonCreateメソッドでperformSomeTaskメソッドを呼び出し、その上にedittextフィールドを入力するとします。フラグメントのonActivityCreateメソッドでedittextを初期化している場合に備えて、nullポインタ例外があります。ここで最善の解決策は何ですか? – Maxrunner

10

おそらく、両方のフラグメントのインターフェイスを作成してから、アクティビティでインターフェイスを実装することをお勧めします。フラグメント間のデカップリングを良好にして、他の場所でフラグメントを再利用できるようにしたいとします。

関連する問題