本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在Android平台上面,我们可以使用PreferenceActivity基类去显示给用户一个选项设置的界面。在Android3.0或更高的版本上,可以使用PreferenceFragment类去实现这个功能。

下面将展示如何去创建和使用PreferenceFragment。

1. 创建一个工程:PreferenceFragmentExample。

2. 在res文件夹下面新建一个xml文件夹,在xml文件夹下面新建一个文件:preferences.xml。

<?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。

public class Fragment1 extends PreferenceFragment {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // 从xml文件加载选项        addPreferencesFromResource(R.xml.preferences);    }}
4. PreferenceFragmentExampleActivity.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的子类:

public class Fragment1 extends PreferenceFragment {}
接下来,我们使用addPreferencesFromResource()方法去加载xml文件:

@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromResource(R.xml.preferences);    }
最后,我们要把这个Fragment1显示在活动中,这时,我们需要使用FragmentManager和FragmentTrasaction:

FragmentManager fragmentManager = getFragmentManager();        FragmentTransaction fragmentTransaction =             fragmentManager.beginTransaction();        Fragment1 fragment1 = new Fragment1();        fragmentTransaction.replace(android.R.id.content, fragment1);                fragmentTransaction.addToBackStack(null);         fragmentTransaction.commit();

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



更多相关文章

  1. Android设置全局字体大小,实现小中大字体功能
  2. 关于Android用户定位获取location值为null的解决方法
  3. Android: 缩放图片文件引起的OOM异常
  4. Android(安卓)gradle 统一依赖库版本
  5. 记录升级Android(安卓)studio3.0遇到的一些问题和解决方法
  6. AccountManager getAccount 在Android(安卓)O 8.0版本中获取为 n
  7. 关于 android 远程控制(pc 控制手机)
  8. 将Android下的可执行文件以静态库的形式进行编译
  9. Android(安卓)animation学习笔记之view/drawable animation

随机推荐

  1. Android(安卓)获取所有联系人(两种方法)
  2. Android中广告渠道SDK接入方法
  3. Android(安卓)Viewpage禁止滑动屏幕
  4. 使用adbWireless无线调试Android真机设备
  5. android中Bitmap导致的内存溢出
  6. Android(安卓)开发者和设计师必须了解的
  7. 在android当中MVC模式分别代表什么?
  8. android文件选择、读取、浏览器的实现(音
  9. Super Jumper:一个2DOpenGL ES游戏
  10. android box2d运行小例子,配置eclipse【转