9

まず、このチュートリアルに従って、アクションバーとタブを使用してアクティビティを作成しました。この実装が行うことは、main_activityレイアウトにfragment_container(単なる線形レイアウト)があり、選択されているタブに応じてフラグメントに置き換えられることです。

現在、フラグメントからアクティビティへの通信を追加しようとしていますが、nullpointerexemptionを取得しています。

これが私のコードです:

com.mypackage.MAPFragment map_ =
(com.mypackage.MAPFragment) getFragmentManager().findFragmentById(R.id.map);
map_.ActivityToMapMethod();

MAPFragmentフラグメントは、mapViewとmapのIDを持つxmlレイアウトを拡張しますマップIDが私が使用することになっているものであるかどうかはわかりません。以前、別のアプリでこれを正常に実行しましたが、そのとき、フラグメントは、replace()を使用するのではなく、xmlを介して追加されました。

4

2 に答える 2

8

このfindFragmentById()メソッドは、コンテナ内に実際に Fragment がある場合、コンテナから Fragment ID を取得します。そうしないと、null が返されます。 チュートリアルfindFragmentById(R.id.fragment_container)内の Fragment を返します。LinearLayout

于 2013-03-07T20:08:55.460 に答える