2013年7月14日 星期日

使用 PreferenceFragment 快速攻略

快速入門,撰寫一個使用 PreferenceFragment
做出設定的畫面
        
( ↑ 使用 PreferenceFragment 撰寫的畫面,如上圖)



Step1. 建立一個Android專案與Activity (細部省略)


Step2. 建立一個 PreferenceFragment 的 XML 設置檔
  • 在專案下新增一個 Android XML File
  • Resource Type 選擇 Preference
  • Root Element 選擇 PreferenceScreen
  • 輸入 File名稱
  • 完成 (注意該XML檔案是在目錄 res > xml 底下)



Step3. 開始新增元素
  1. 所有元素都要新增在根元素(PreferenceScreen)下
  2. 詳細元素使用請參閱官網



Step4. 在主Activity中呼叫 PreferenceFragment

  1. 首先必須知道 PreferenceFragment 屬於一個 Fragment 的其中一個子類別,如不知Fragment為何,請先閱讀介紹文章
  2. 接下來請為 PreferenceFragment 新增一個 class,目的是為了將 PreferenceFragment的XML檔與 PreferenceFragment 程式連接起來,並呼叫它啟動

    (1) 新增一個class,在superclass 填入 PreferenceFragment,目的是繼承PreferenceFragment類別


    (2) 因為每個 Fragment 都有自己的生命周期,在PreferenceFragment啟動(onCreate)時,應設定PreferenceFragment 的 XML配置檔

    (3) 點選 Source → Override/Implement Methods... → 選擇 PreferenceFragment下onCreate(Bundle),快速建立 onCreate 函式


    (4) 最後在 onCreate 內指定 PreferenceFragment 配置的XML檔案
    addPreferencesFromResource(R.xml.你的XML檔名);

    上述步驟完整Code:
    public void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      addPreferencesFromResource(R.xml.eee);
     }
  3. 接下來要讓主 Activity 喚醒上一步寫好的 FragmentManager ,在主Activity中寫入以下 :

    (1) 首先為了控制 Fragment,首先要先取得 Fragment 管理器
     FragmentManager fm = this.getFragmentManager();

    (2)接下來取得管理器編輯與操作的物件,才能開始操作
     FragmentTransaction ft = fm.beginTransaction();

    (3) 接下來要將主View 切換到 PreferenceFragment
    FragmentTransaction ft2 = ft.replace(android.R.id.content, new PrefsFragement());

    (4) 最後呼叫 commit 方法執行
     ft2.commit();
    上述步驟完整Code:
     FragmentManager fm = this.getFragmentManager();
     FragmentTransaction ft = fm.beginTransaction();
     FragmentTransaction ft2 = ft.replace(android.R.id.content, new PrefsFragement());
     ft2.commit();
  4. 完成上述步驟後,一個 PreferenceFragment 就完成囉 ~,趕快執行看看吧~