展会信息港展会大全

Android 程式开发:(十三)特殊碎片 —— 13.3 PreferenceFragment
来源:互联网   发布日期:2015-09-29 11:01:01   浏览:2046次  

导读:有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在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();

关于碎片就讲到这里了,下一个部分将会讲解菜单。很简单。欢迎大家提出宝贵的意见。

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港