Android 程式开发:(十三)特殊碎片 —— 13.3 PreferenceFragment
有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在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文件加载选项
addPreferences
补充:移动开发 , Android ,