[解決済み] 現在のフラグメントオブジェクトを取得する
質問
私の
main.xml
私は
<FrameLayout
android:id="@+id/frameTitle"
android:padding="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/title_bg">
<fragment
android:name="com.fragment.TitleFragment"
android:id="@+id/fragmentTag"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
そして、フラグメントオブジェクトを次のように設定しています。
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
異なるタイプのFragmentオブジェクトを設定している(
FragmentType2,FragmentType3,...
) を異なる時間に実行します。さて、ある時点で、どのオブジェクトが現在そこにあるのかを特定する必要があります。
で 短い こんなことがしたいのですが。
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
以下を試してみました。
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
そして
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
しかし
両方のオブジェクト (titleFragmentById と titleFragmentByTag ) は
null
何か見逃した?
私が使っているのは
Compatibility Package, r3
を開発し
API level 7
.
findFragmentById()
と
findFragmentByTag()
を使用してフラグメントを設定した場合は動作します。
fragmentTransaction.replace
または
fragmentTransaction.add
を使用しますが
return null
xml でオブジェクトを設定した場合 (例えば私の
main.xml
). 私のXMLファイルに何かが欠けているようです。
解決方法は?
<ブロッククオートさて、ある時点で、どのオブジェクトが現在そこにあるのかを特定する必要があります。
コール
findFragmentById()
オン
FragmentManager
の中にあるフラグメントを特定し、そのフラグメントがあなたの
R.id.frameTitle
のコンテナを使用します。
を使用している場合は
androidx
版
Fragment
- を使用します。
getSupportFragmentManager()
の上に
FragmentActivity
/
AppCompatActivity
ではなく
getFragmentManager()
関連
-
android:EMSのプロパティ
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み] ViewPagerでFragmentが表示されるタイミングを決定する方法
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
GIF、Lottie、SVGA
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
repo: コマンドが見つかりません
-
Android基本アプレット
-
アンドロイドの遅延実行のいくつかの方法