2011-10-21 22 views
2

2つのフラグメントを1つのアクティビティに配置します。私がしたいことは、フラグメントBのボタンをクリックすると、フラグメントAからビューを隠すことです。フラグメントAに隠れ関数がありますが、フラグメントBでどのように呼び出すのですか? 私が試した:フラグメント内の関数を別の関数から呼び出すにはどうすればよいですか?

((FragmentA)getActivity().getFragmentManager().findFragmentById(R.id.fragment_a)).hideLivePreview(); 

をしかし、それは私にnullポインタ例外を与える...あなたは、一般的にこれを行うにはしたくない

+2

フラグメントbのアクティビティと通信する必要があります。これはフラグメントaの機能を起動します。 http://developer.android.com/guide/topics/fundamentals/fragments.html#CommunicatingWithActivity、このリンクを確認してください。 –

+0

@Yashwanthクマール\t THX男..私はそれは私が行うことになっています何確信しているが、私は私が活動 – Han

答えて

4

を助けてください。フラグメントAとフラグメントBは、同時に、フラグメントAとフラグメントBの両方が同時に画面に表示されない可能性があるため、直接通信しないでください。常にです。それらは大画面で横並びに表示されますが、小さな画面で別々のアクティビティを介して表示されます。 IMHO、活動は断片間のすべてのコミュニケーションを仲介する必要があります。あまりにも緊密に結合された2つの断片がある場合、最初は別々の断片であってはなりません。

アクティビティにそのIDのフラグメントがないため、NullPointerExceptionが表示されます。

+0

Thxをからのフラグメントの関数を呼び出すとき、NULLポインタ例外を取得しておきますよ!私はそのアクティビティの中でやろうとしますが、NullPointerExceptionのために関数を呼び出す前にアクティビティをチェックしました。そのため、特定のアクティビティ内にそのようなフラグメントがあるはずです。私が何か誤解したかどうかは分かりません... – Han

関連する問題