2

4 つのフラグメントをホストする tabHost があります。tabHost アクティビティが作成されると、フラグメントが作成されて含まれます。フラグメントにそのビューを強制的に再作成させるにはどうすればよいですか?つまり、createView で再実行することを意味します。

編集:私の最初のフラグメントは Web サービスを消費し、親アクティビティのフィールドを更新します。そのフィールドは 2 番目のフラグメントによって読み取られます。しかし、アクティビティがインスタンス化されるまでに、親アクティビティのフィールドは空です。それが理由です。フィールドが更新された後、2 番目の Fragment が再描画されることを望みます。

4

1 に答える 1

0

必要なことは、Observer (または Listener) デザイン パターンを使用することです。基本的にあなたがすることは、このようなインターフェースを作成することです(これは単なる例です)

interface DataListener {

   void dataHasArrived(Object data);

}

2 番目のフラグメント (データを表示するフラグメント) は、これを実装する必要があります (引数のオブジェクトは、表示するデータです)。データを取得するフラグメントには、それへの参照が必要です (最初のフラグメントを含むタイプ DataListener のフィールド。親アクティビティで設定できます)。データが利用可能になったら、データを引数として最初のフラグメントからメソッドを呼び出すだけで、残りは 2 番目のフラグメントの実装が行います。

于 2013-01-16T09:45:20.060 に答える