`
king_tt
  • 浏览: 2250907 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【Android 开发教程】PreferenceFragment

 
阅读更多

本章节翻译自《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();

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



分享到:
评论

相关推荐

    Android、教程<经典> 4 高级控件

    在Android开发领域,掌握高级控件的使用是提升应用界面交互性和用户体验的关键步骤。本教程将深入探讨Android系统中的各种高级控件,帮助开发者更好地利用这些工具构建功能丰富且用户友好的应用程序。以下是对...

    android 源码settings 导入eclipse

    在Android开发过程中,深入理解系统源码是提升技术能力的重要环节。"android 源码settings 导入eclipse"这个主题聚焦于如何将Android系统的Settings模块源码导入到Eclipse IDE中,以便进行学习和分析。下面我们将...

    preferenceActivity的简单使用

    在Android开发中,`PreferenceActivity`是用于创建设置界面的一种特殊类型的Activity,它允许开发者以声明式的方式构建用户界面,通常用于应用的设置菜单。在本教程中,我们将深入探讨`PreferenceActivity`的使用,...

    android完整的用户登录模板

    在Android开发中,一个完整的用户登录模板是必不可少的,它为用户提供了一个简洁、直观的界面,以便他们可以安全地登录到应用程序。这个"android完整的用户登录模板"包含了多个关键组件和功能,使得开发者能够快速...

    S06.03-Exercise-PolishingPreferences.zip

    【标题】"S06.03-Exercise-PolishingPreferences.zip" 提示我们这是一个关于Android开发的练习项目,可能涉及到对用户界面(UI)或应用程序偏好设置的优化。在这个练习中,开发者可能正在学习如何提升用户体验,通过...

    Preference

    在Android开发中,"Preference" 是一个非常重要的概念,它涉及到用户界面(UI)的设计以及用户设置的管理。"Preference" 类通常用于构建类似于系统设置的界面,让用户能够轻松地更改应用的偏好设置。本教程将深入...

    fragments游戏框架

    Fragments是Android开发中的一个重要概念,它不仅提高了应用程序的灵活性,还增加了代码的重用性和维护性。通过合理使用Fragments,开发者可以构建出适应各种设备的应用程序,同时保持代码的简洁和高效。对于希望...

    安卓平台应用开发-动画视频播放

    本教程将深入探讨如何利用Android SDK中的组件和工具来创建一个功能丰富的视频播放器,并加入各种动态效果,如补间动画、刮刮卡效果、设置界面、摇一摇功能以及帧动画。 首先,我们从基础的`VideoView`开始。`...

    ThemeAndStyle:这个关于在Android应用程序中自定义主题和样式的存储库

    在Android应用程序开发中,主题(Themes)和样式(Styles)是构建用户界面的重要元素,它们允许开发者统一并个性化应用的视觉表现。`ThemeAndStyle`存储库提供了一套详细的资源和指南,帮助开发者深入理解如何在...

    开发动态壁纸WallPaPerService.rar

    本教程将深入讲解如何利用Android的`WallpaperService`类来开发自己的动态壁纸应用。 首先,我们需要了解`WallpaperService`。它是Android系统提供的一个服务类,继承自`Service`,专门用于创建动态壁纸。创建动态...

Global site tag (gtag.js) - Google Analytics