Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 程式開發:(十三)特殊碎片 —— 13.3 PreferenceFragment

Android 程式開發:(十三)特殊碎片 —— 13.3 PreferenceFragment

編輯:關於Android編程

有的時候,我們做的程序需要提供一些選項的功能,能讓用戶去定制化他們自己的使用風格。舉個例子,你可能允許用戶是否自動保存登錄信息,允許用戶自己設定某個頁面的刷新時間等等。在Android平台上面,我們可以使用PreferenceActivity基類去顯示給用戶一個選項設置的界面。在Android3.0或更高的版本上,可以使用PreferenceFragment類去實現這個功能。

下面將展示如何去創建和使用PreferenceFragment。

1、創建一個工程:PreferenceFragmentExample。

2、在res文件夾下面新建一個xml文件夾,在xml文件夾下面新建一個文件:preferences.xml。


[html] 
<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen  
    xmlns:android="http://schemas.android.com/apk/res/android"> 
 
    <PreferenceCategory android:title="Category 1"> 
        <CheckBoxPreference 
            android:title="Checkbox" 
            android:defaultValue="false" 
            android:summary="True of False" 
            android:key="checkboxPref" /> 
        </PreferenceCategory>                 
         
    <PreferenceCategory android:title="Category 2"> 
        <EditTextPreference 
            android:name="EditText" 
            android:summary="Enter a string" 
            android:defaultValue="[Enter a string here]" 
            android:title="Edit Text" 
            android:key="editTextPref" />             
        <RingtonePreference 
            android:name="Ringtone Preference" 
            android:summary="Select a ringtone" 
            android:title="Ringtones" 
            android:key="ringtonePref" />             
        <PreferenceScreen                 
            android:title="Second Preference Screen" 
            android:summary= 
                "Click here to go to the second Preference Screen" 
            android:key="secondPrefScreenPref">                             
            <EditTextPreference 
                android:name="EditText" 
                android:summary="Enter a string" 
                android:title="Edit Text (second Screen)" 
                android:key="secondEditTextPref" />                 
        </PreferenceScreen>         
    </PreferenceCategory>   
           
</PreferenceScreen> 
3、在包路徑下面新建一個類:Fragment1.java。
[html] 
public class Fragment1 extends PreferenceFragment { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
 
        // 從xml文件加載選項 
        addPreferencesFromResource(R.xml.preferences); 
    } 

4、PreferenceFragmentExampleActivity.java(主活動)的代碼。
[java] 
public class PreferenceFragmentExampleActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        FragmentManager fragmentManager = getFragmentManager(); 
        FragmentTransaction fragmentTransaction =  
            fragmentManager.beginTransaction(); 
        Fragment1 fragment1 = new Fragment1(); 
        fragmentTransaction.replace(android.R.id.content, fragment1);         
        fragmentTransaction.addToBackStack(null);  
        fragmentTransaction.commit(); 
    } 

5、按F11在模擬器上面調試。

6、點擊第二行,就會顯示一個窗口。

 

7、使用DDMS工具,就會看見在本應用的包路徑下面會生成一個xml文件。

 


如果想創建一個列表樣式的選項,首先,我們需要先創建preferences.xml文件,然後在這個文件裡面填充各種元素。

然後,我們需要一個繼承PreferenceFragment的子類:

[html] 
public class Fragment1 extends PreferenceFragment {} 
接下來,我們使用addPreferencesFromResource()方法去加載xml文件:
[html] 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
 
        // 從xml文件加載選項 
        addPreferencesFromResource(R.xml.preferences); 
    } 
最後,我們要把這個Fragment1顯示在活動中,這時,我們需要使用FragmentManager和FragmentTrasaction:
[java] 
FragmentManager fragmentManager = getFragmentManager(); 
        FragmentTransaction fragmentTransaction =  
            fragmentManager.beginTransaction(); 
        Fragment1 fragment1 = new Fragment1(); 
        fragmentTransaction.replace(android.R.id.content, fragment1);         
        fragmentTransaction.addToBackStack(null);  
        fragmentTransaction.commit(); 

關於碎片就講到這裡了,下一個部分將會講解菜單。很簡單。歡迎大家提出寶貴的意見。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved