0

私はこの問題で立ち往生しています。

親 FragmentActivity から Abc フラグメントのメソッドを呼び出して、FrameLayout のフラグメントを動的に処理したいと考えています。これで、アクティビティには、サービスからの更新をリッスンするブロードキャスト レシーバーができました。Abc フラグメントが現在表示されていない場合でも、アクティビティはいつでもブロードキャストを受信できます。今、fragmentManager().findFragmentById(id) where id==id of the framelayout を使用してフラグメントを見つけた場合、現在表示されているものでない場合はエラーが発生するため、単純に Abc フラグメントにキャストすることはできません。Abc が現在表示されていることをどのように知ることができるので、更新を渡すことができますか。Activity は他の目的で update を必要とするため、Abc 自体の内部に update の受信を実装することはできません。

4

1 に答える 1

2

フラグメントを作成するときに、フラグメントにタグを設定できます

Fragment fragment = new MyFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_host, fragment,"FragmentTag");
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack("");
ft.commit();

このように検索します

Fragment frag = (Fragment) getFragmentManager().findFragmentByTag("FragmentTag");
于 2012-09-21T14:29:10.830 に答える