读书频道 > 网站 > 网页设计 > Android 4编程入门经典—开发智能手机与平板电脑应用
4.4.3 使用PreferenceFragment
12-11-07    奋斗的小年轻
收藏    我要投稿   
Android 4的问世,标志着Google将Android操作系统的大旗插到了智能手机和平板电脑的阵营中。这本指南书将教会您成功开发Android应用程序所需的一切。本书涵盖了Android应用程序开发的所有基础,包括用户界面、网...立即去当当网订购

Android应用程序通常要提供首选项,以允许用户定制应用程序。例如,可以允许用户保存那些用于访问Web资源的登录凭据,或者保存源刷新频率的信息(比如在一个RSS阅读器应用程序中)等等。在Android中,可以使用PreferenceActivity基类为用户显示一个用于编辑首选项的活动。在Android 3.0和更高版本中,可以使用PreferenceFragment类实现相同的功能。

下面“试一试”显示了在Android 3和Android 4版本中创建并使用一个首选项碎片的方法。

试一试 创建并使用一个首选项碎片

PreferenceFragmentExample.zip代码文件可以在Wrox.com上下载

(1) 使用Eclipse创建一个Android项目并把它命名为PreferenceFragmentExample。

(2) 在res文件夹下创建一个新的xml文件夹,然后将一个新的Android XML文件添加到该xml文件夹里。将该XML文件命名为preferences.xml(如图4-27所示)。


 

(3) 使用如下代码填充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>

(4) 将一个Java类文件添加到包里,并将其命名为Fragment1。

(5) 使用如下代码填充Fragment1.java文件。
package net.learn2develop.PreferenceFragmentExample;

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class Fragment1 extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //---load the preferences from an XML file---
        addPreferencesFromResource(R.xml.preferences);
    }
}

(6) 按照下列粗体显示的代码修改PreferenceFragmentExampleActivity.java文件。
package net.learn2develop.PreferenceFragmentExample;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;

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();
     }
}

(7) 按F11键在Android模拟器上调试应用程序,图4-28展示了首选项碎片,它显示了用户可以修改的首选项列表。

(8) 当单击Edit Text首选项时,会显示一个弹出窗口(如图4-29所示)。

(9) 单击Second Preference Screen选项会使第二个首选项屏幕项显示出来(如图4-30所示)。


 

(10) 要想让首选项碎片消失,在模拟器上单击Back按钮。

(11)如果查看File Explore(在DDMS透视图中可用),将可以定位到位于/data/data/net. learn2develop.preferenceFragmentExample/shAred_prefs/文件夹中的首选项文件(如图4-31所示),用户所做的所有修改都保存在这个文件中。

示例说明


 

注意:第6章将介绍如何检索保存在首选项文件中的值。

为了在Android应用程序中创建一个首选项的列表,首先需要创建preferences.xml文件并将不同的XML元素填充到该文件中。这个XML文件定义了各种想保存在应用程序中的项。

为了创建首选项碎片,需要扩展PreferenceFragment基类:

public class Fragment1 extends preferenceFragment{
}

为在首选项碎片中加载首选项文件,可以使用addPreferencesFromResource()方法:
@Override
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          //---load the preferences from an XML file---
          addPreferencesFromResource(R.xml.preferences);
     }

为在活动中显示首选项碎片,可以使用FragmentManger类和FragmentTransaction类:
     FragmentManager fragmentManager = getFragmentManager();
     FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
     Fragment1 fragment1 = new Fragment1();
     fragmentTransaction.replace(android.R.id.content, fragment1);
     fragmentTransaction.addToBackStack(null);
     fragmentTransaction.commit();

需要使用addToBackStack()方法将首选项碎片添加到back stack,从而用户可以通过单击Back按钮关闭碎片。

 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站