別のアプローチ:
を使用しFragments
ます。フラグメントはコンテナーに追加され、必要に応じて他のフラグメントに置き換えられます。置き換えられた Fragment は、スタックに追加することも、追加しないこともできます。自分で決められること。この場合、フローは次のようになります。
- MainActivity は、フラグメント A をコンテナーに追加します。
- ボタンが押された
- Fragment A は Fragment B に置き換えられます。 Fragment A は
スタックに追加されています。.addToBackStack(..)
- フラグメント B が表示されます
- ボタンが押された
- フラグメント B はフラグメント C に置き換えられます。フラグメント B はスタックに追加されません。
- フラグメント C が表示されます
- 背中が押される
- フラグメントAが表示されます
アップデート
Android が提供するドキュメントを読むことから始めることができます。
開始して基本を説明するための簡単な例。HoneyComb よりも古いバージョンをサポートするために、fragment の Android サポート ライブラリ v4 を使用しています。
main_activiy - XML
<LinearLayout>
<FrameLayout id:content_container/>
<LinearLayout>
主な活動
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activiy );
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.content_container, new FragmentA());
transaction.commit();
}
}
フラグメント A (フラグメント B および C を作成できるアナログ)
public class Fragment A extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentA, container, false);
return view;
}
}
内部にロジックを実装Fragment
し、クリックイベントなどをキャッチできます。これは、OnClickListener からフラグメントを切り替える方法です。
private class mClickListener implements OnClickListener {
public void onClick(View v) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.content_container, new FragmentB);
transaction.addToBackStack(...); // Remove this when you don't want it to be stacked
transaction.commit();
}
}