- package com.tqc.gdd01;
- import android.app.Activity;
- import android.app.FragmentTransaction;
- import android.os.Bundle;
- public class GDD01 extends Activity {
- public static boolean bIfDebug = false;
- public static String TAG = "HIPPO_DEBUG";
- boolean detailPage = false; //detailPage 是否配置
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- if (savedInstanceState == null) { //初次建立 listFragment 元件
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- ListFragment listFragment = new ListFragment();
- ft.add(R.id.displayList, listFragment, "List_Fragment");
- ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); //設定轉場動畫
- ft.commit(); //交託
- }
- //如果 displaydetail 這個元件存在,代表此時為橫向擺放 (橫向擺放時會自動抓取資料夾 layout-land 下的 main.xml)
- if (findViewById(R.id.displayDetail) != null) {
- // Landscape
- detailPage = true;
- getFragmentManager().popBackStack();
- // 主程式setContentView()之後,判斷橫式UI中ID為displayDetail的FrameLayout是否存在,置換不同的Fragment於其中
- DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.displayDetail);
- if (detailFragment == null) { //初次建立 detailFragment 元件
- // TO DO
- detailFragment = new DetailFragment();
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- ft.add(R.id.displayDetail, detailFragment, null);
- ft.commit();
- }
- }
- }
- public void onButtonClicked(String strText) {
- // 依據直式或橫式按鈕事件也不同,請為直式切換頁面Fragment,而橫式為置換右方FrameLayout。
- if (detailPage) {
- // Landscape
- //TO DO
- DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.displayDetail);
- detailFragment.updateDavidContent(strText);
- } else {
- //TO DO
- DetailFragment detailFragment=new DetailFragment();
- detailFragment.updateDavidContent(strText);
- FragmentTransaction ft=getFragmentManager().beginTransaction();
- ft.addToBackStack(null); //加到後方堆疊區,使按 "返回鍵" 時不會整個畫面小
- ft.replace(R.id.displayList, detailFragment, null);
- //replace() 的功能等同於先呼叫 remove() 移除目前的 Fragment,再呼叫 add() 加入另一個 Fragment
- ft.commit();
- }
- }
- }
複製代碼 |