1. ホーム
  2. java

XMLレイアウトでフラグメントを宣言した場合、それにBundleを渡すにはどうすればよいですか?

2023-11-01 08:01:50

質問

私は、フラグメントに置き換えたアクティビティを持っています。 アクティビティは、アクティビティが表示することになっているデータに関するいくつかの余分な情報を持っていたIntentを取りました。

私のアクティビティは、同じ作業を行うフラグメントのラッパーに過ぎませんが、フラグメントをXMLでタグで宣言する場合、そのバンドルをフラグメントにどのように渡すのでしょうか。

FragmentTransactionを使ってFragmentをViewGroupに入れるなら、Fragmentのコンストラクタでこの情報を渡す機会がありますが、FragmentがXMLで定義されている状況について疑問に思っています。

どのように解決するのでしょうか?

私のActivityは、同じ仕事をするFragmentのラッパーに過ぎませんが、XMLでタグを使ってFragmentを宣言した場合、そのバンドルをFragmentに渡すにはどうすればよいでしょうか。

できません。

しかし、あなたは歓迎されます。 findFragmentById() を呼び出すことは可能です。 FragmentManager を使用してインフレ後のフラグメントを取得し、フラグメントのメソッドを呼び出してデータを関連付けます。明らかにそれはできませんが setArguments() にはできないようですが、フラグメントは他の手段で設定変更後もデータを保持するよう手配できます ( onSaveInstanceState() , setRetainInstance(true) など)。