ビデオ: 【SAOVR】アスナ好きには必見なアプリ!?【ネタバレ注意】 2024
アンドロイドのインスタンス。アプリ。 FragmentManagerクラスは、アプリケーションのフラグメントを処理します。たとえば、以下のコードでは、マネージャのreplaceメソッドは、ユーザーの画面に表示されているフラグメントを変更します。マネージャーはまた、あなたの活動のバックスタックを手伝うのに役立ちます。
package com。オールマイコード。フラッグ;インポートアンドロイド。アプリ。 FragmentManager;インポートアンドロイド。アプリ。 FragmentTransaction;インポートアンドロイド。アプリ。 ListFragment;インポートアンドロイド。 os。バンドル;インポートアンドロイド。ビュー。見る;インポートアンドロイド。ウィジェット。 ArrayAdapter;インポートアンドロイド。ウィジェット。リストビュー;パブリッククラスComponentNamesFragment extends ListFragment {final static String [] COMPONENTS = {"Activity"、 "Service"、 "BroadcastReceiver"、 "ContentProvider"}; @Override public void onActivityCreated(Bundle savedInstanceState){super。 onActivityCreated(savedInstanceState); @Override public void onListItemClick(ListView l、View v、int index、long id){//インデックス付きフラグメントを作成するDocsFragment docsFragment =新しいDocsFragment(); Bundle args = Helper。 getBundleWithIndex(index); docsFragment。 setArguments(args); //バックスタックをクリアするFragmentManager fragmentManager = getFragmentManager(); int backStackEntryCount = fragmentManagerです。 getBackStackEntryCount(); for(int i = 0; iアクティビティは、連続したstartActivityコールで互いに積み重ねられます。ユーザーがBackを押すと、Androidはアクティビティをスタックからポップします。最近追加されたアクティビティが最初にポップされます。ボスであるアンドロイドがアクティビティ・ユニオンのメンバーと契約しているかのようです。 Androidは、年功序列の逆順でアクティビティを開始します。
<! - 1 - >Android 3. 0にフラグメントを導入すると、アクティビティは独自のプライベートスタックを持つことができます。フラグメントAを表示してからfragmentTransactionを呼び出すことができます。置換およびfragmentTransaction。 addToBackStack。メソッド呼び出しの組み合わせにより、フラグメントBはフラグメントAを上書きします。ユーザが戻るを押すと、フラグメントBは消え、フラグメントAはアクティビティの画面上のその場所に戻ります。Androidは、アクティビティが破棄することができるフラグメントがなくなるまで、アクティビティ全体を破棄しません。
上記のコードのBack stackのClear部分で、フラグメントマネージャは、アクティビティのフラグメントスタックのいくつかの迅速なハウスキーピングを行います。
addToBackStackを呼び出すと、バックスタックに置いているエントリの名前を指定することができます。 addToBackStack呼び出しの引数としてnullを指定すると、エントリの名前は変更されません。その時点でコードの後に文字列を指定すると、FragmentManagerを呼び出してエントリを取得できます。 findFragmentByTag。