Android学习笔记十二.深入理解LauncherActvity之Launc - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

Android学习笔记十二.深入理解LauncherActvity之Launc

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:37


深刻懂得LauncherActvity
之LauncherActivity、PreferenceActivity、PreferenceFragment
    
    大年夜下图我们可以知道,LauncherActivity、PreferanceActivity均持续于ListActivity,个中LauncherActivity实现当列表界面列表项被点击时所对应的Acitvity被启动;PreferanceActivity实现一个法度榜样参数设置、存储功能的Activity列表界面。
[img]http://img.blog.csdn.net/20150104173549501?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center


一、LauncherActivity应用详解
1.概述:LauncherActivity的感化是是开辟一个列表界面Activity,然则这个列表界面与通俗的列表界面有所不合。它开辟出来的列表界面中的每个列表项都对应于一个Intent,经由过程重写Intent intentForPosition(int position)办法根据不合列表返回不合的intent。当我们点击不合列表项时,应用法度榜样会主动启动对应的Acitviy。效不雅如下:
[img]http://img.blog.csdn.net/20150104173608315?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/4607a9b2a34d421ca4f667ae331761b5/clipboard.png
2.LauncherActivity类介绍
(1)构造办法:LauncherActivity()
(2)重要办法
Intent intentForPosition(int position):根据不合列表返回不合的intent
void onCreate(Bundle savedInstanceState):启动Activity第一个被调用
void onListItemClick(ListView l, View v, int position, long id):当点击一个列表项时调用该办法
(3)Intent构造办法:用于实例化一个Intent对象
Intent()
Intent(Intent o)
Intent(String action)
Intent(String action, Uri uri)
Intent(Context packageContext, Class<?> cls)
Intent(String action, Uri uri, Context packageContext, Class<?> cls)
3.开辟思路及源码
(1)为LauncherActivity界面填充列表项内容。经由过程装配适配器,将数组字符串数据源装配到视图,并根据按体系自带的android.R.layout.simple_expandable_list_item_1构造文件设计每个列表项外不雅和内容;
String[] names={"设置法度榜样参数","查看人种"}; 
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1 , names);
 setListAdapter(adapter); 
[img]http://img.blog.csdn.net/20150104173705255?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/9d9ae52610594cbfb4817ec0df3b6b46/clipboard.png
(2)重写Intent intentForPosition(int position)办法,实现根据不合列表返回不合的intent。当用户点击Activity列表项时,体系将传递该列表项地点的地位position参数给intentForPosition办法,最后返回一个intent给高低文界面大年夜而实现启动相对应的Acitvity。
Class<?>[] classes={PreferenceActivityTest.class,ExpandableListActivityTest.class}; 
public Intent intentForPosition(int position)
{
    return new Intent(LaunchActivity.this,classes[position]);    //new一个intent
 }
(3)实现intent对应的Acitvity,可以持续于Activity、PreferenceActivity、ExpandableListActivity等.
[img]http://img.blog.csdn.net/20150104173737546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/f176c1fdf58349228ee5d40228c5cc38/clipboard.png

(3)源代码
package com.example.android_activity_1;
import android.app.LauncherActivity; 
import android.content.Intent;
import android.os.Bundle;
import android.widget.ArrayAdapter;
/*主Activity:LauncherActivity
 * 每个列表项都对应于一个Intent
 * */
public class LaunchActivity extends LauncherActivity {
 //1.定义两个Activity的名称
 String[] names={"设置法度榜样参数","查看人种"};
 //2.定义两个Activity对应的实现类,前者用于显示一个显示设制揭捉项参数并进行保存的窗口;后者用于显示一个可展开的列表窗口(Activity)
 Class<?>[] classes={PreferenceActivityTest.class,ExpandableListActivityTest.class};
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 //3.装配ArrayAdapter适配器,将数据装配到对应的列表项视图中
  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1 , names);
 //4.设置该窗口显示的列表所需的adapter
  setListAdapter(adapter);
 }
 //5.重写Intent IntentForPosition(int position)办法:根据列表项返回的intent,用于启动不合的Activity
 public Intent intentForPosition(int position){
  return new Intent(LaunchActivity.this,classes[position]);    //返回一个Intent对象,已指明将要启动的类,个中 position的值袈溱当用户点击Activity中列表项被肯定
 }
}

二、PreferenceActivity应用详解

1.概述:PreferenceActivity是一个异常有效的基类,当开辟的Android应用法度榜样须要进行选项设置并欲望这些选项设置以参数的情势保存时,我们可以经由过程PreferenceActivity实现。PreferenceActivity与通俗的Acitvity不合,它不再应用通俗的界面构造文件,而是使悠揭捉项设置的构造文件。
    选项设置的构造文件:以PreferenceScreen作为根元素,它注解定义一个参数设置的界面构造。
别的,一旦Activity持续了PreferenceActivity,那么该Activity完全不须要本身控制Preferences的读写,PreferenceActivity会为我们处理这一切。
2.PreferenceActivity类介绍
(1)嵌仁攀类:class PreferenceActivity.Header 
感化:用来描述用户将要点击的标头列表项
(2)PreferenceActivity重要办法
public void loadHeadersFromResource (int resid, List<PreferenceActivity.Header> target)
功能:解析resid所代表的构造资本文件,根据元素<header../>为一标头(列表项)添加到目标列表list中。
public void onBuildHeaders (List<PreferenceActivity.Header> target)
功能:负责加载页面构造文件到Activity,经由过程该办法添加加载至少一项标头到Activity列表中,并使acitvity运行在其fragment模式。个中,List<PreferenceActivity.Header>为一个列表集合用来存放构造文件中的标头,调用 loadHeadersFromResource(R.layout.*, List)办法将构造资本添加到列表list数据集中。
3.开辟思路及源码
    为了创建一个PreferenceActivity界面,起首须要创建一个对应的界面构造文件。大年夜Android3.0开端,官方推荐将PreferenceActivity结合PreferenceFragment来实现参数设置界面。个中,PreferenceActivity只负责加载选项设置列表的构造文件(如图(A));PreferenceFragment才负责加载选项设置的构造文件(如图(B)).
[img]http://img.blog.csdn.net/20150104173757031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/712a277d693c4f88942f52ec536606d9/clipboard.png
(1)PreferenceActivity加载选项设置列表的构造文件,其根元素为<preference-headers ...>...</preference-headers>,每一列表项元素为<header ...></header>或者<intent.../>,具体效不雅如上图(A)所示。
<preference-headers ...> 
//实现一个列表项
<header android:fragment="com.example.android_activity_1.PreferenceActivityTest$Prefs1Fragment"     //指定列表项启动Prefs1Fragment界面
            android:icon=""             //指定列表项搁笔
            android:title=""              //指定列表项的标题
            android:summary="">   //指定列表项解释
         <extra android:name="website"   //子元素<extra../>,给Prefs1Fragment界面(Activity)传递数据,即website="www.baidu.com"
                        android:value=http://www.sjsjw.com/100/000273MYM027880/"www.baidu.com"/>
        <intent                                      //子元素<intent.../>,启动一个Activity       
        android:action="android.intent.action.VIEW" 
        android:data=http://www.sjsjw.com/100/000273MYM027880/"http://www.baidu.com"/>
</header> 
................
</preference-headers>

    个中,android:fragment的感化是指定列表项启动哪一个preferenceFragment界面,格式为:"包.类.$内部类",这个内部类持续于PreferenceFragment。在Prefs1Fragment 获取传入<extra.../> 该Fragment的参数 :
   String website=getArguments().getString("website");
   Toast.makeText(getActivity(), "网站域名是:"+website, Toast.LENGTH_SHORT).show();
[img]http://img.blog.csdn.net/20150104173838031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/9e841d11bd4b4250bbf2281e21c7038e/clipboard.png
源代码res/layout/preference.xml:
    该构造定义了三个列表项,个中前两个列表项经由过程android:fragment属性指定启动响应的PreferenceFragment;第三个列表项经由过程<intent../>子元素启动指定的Activity.
<?xml version="1.0" encoding="utf-8" ?> 
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- 指定:启动指定preferenceFragment的列表项 --> 
<header android:fragment="com.example.android_activity_1.PreferenceActivityTest$Prefs1Fragment" 
android:icon="@drawable/a" 
android:title="背景灯光选项设置" 
android:summary="设置sex的相干选项"> 
</header> 
<!-- 指定:启动指定preferenceFragment的列表项 --> 
<header android:fragment="com.example.android_activity_1.PreferenceActivityTest$Prefs2Fragment" 
android:icon="@drawable/b" 
android:title="人种选项设置" 
android:summary="设置人种的相干选项"> 

<!-- 应用extra可向Activity传入额外的数据 --> 
<extra android:name="website"	
android:value=http://www.sjsjw.com/100/000273MYM027880/"www.baidu.com"/> 
 

(2)实现一个持续于PreferenceActivity的Activity(PreferenceActivityTest.java),重要完成两个义务:
a.加载指定的选项设置列表构造文件(res/layout/preference.xml)到PreferenceActivity,经由过程重写其public void onBuildHeaders(List<Header> target)办法实现;
 public void onBuildHeaders(List<Header> target)
 {
      super.loadHeadersFromResource(R.layout.preference, target);
 }
b.定义实现选项设置列表的构造文件中应用的PreferenceFragment内部类;

 public static class Prefs1Fragment extends PreferenceFragment
 {
      public void onCreate(Bundle savedInstanceState)
     {
               super.onCreate(savedInstanceState);
               addPreferencesFromResource(R.xml.preferences); //加载选项设置构造文件到PreferenceFragment
      }

 }


源代码src/包名/PreferenceActivityTest.java:
package com.example.android_activity_1;
import java.util.List; 
import android.os.Bundle; 
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.widget.Button;
import android.widget.Toast;
/*PreferenceActivity:
 * 结合PreferenceFragment实现参数设置界面,
 * 个中,PreferenceFragment负责加载选项设置的构造文件;PreferenceActivity负责加载选项设置列表的构造文件*/
public class PreferenceActivityTest extends PreferenceActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 //1.该办法用于为该界面设置一个标题按钮
  if(hasHeaders())
  {
   Button button=new Button(this);
   button.setText("设置操作");
   //将该按钮添加到该界面上
   setListFooter(button);
  }
 }
 //2.该办法加载选项列表的页面构造文件
 @Override
 public void onBuildHeaders(List<Header> target) {
  // TODO Auto-generated method stub
  super.loadHeadersFromResource(R.layout.preference, target);
 }
 //3.在PreferenceActivityTest中显示Prefs1Fragment、Prefs2Fragment两个内部类
 public static class Prefs1Fragment extends PreferenceFragment
 {
  @Override
  public void onCreate(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onCreate(savedInstanceState);
   addPreferencesFromResource(R.xml.preferences);	 //加载选项设置构造文件到PreferenceFragment
  }
 }
 
 public static class Prefs2Fragment extends PreferenceFragment
 {
  @Override
  public void onCreate(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onCreate(savedInstanceState);
   addPreferencesFromResource(R.xml.display_prefs);	 //加载选项设置构造文件到PreferenceFragment
   //获取传入该Fragment的参数
   String website=getArguments().getString("website");
   Toast.makeText(getActivity(), "网站域名是:"+website, Toast.LENGTH_SHORT).show();
  }
 }
}

[img]http://img.blog.csdn.net/20150104173921343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/843454937bf2452f8fbabfff4c405153/clipboard.png
(3)建立选项设置参数构造文件display_prefs.xml、preferences.xml
    选项设置参数构造文件,以<PreferenceScreen....></PreferenceScreen>为根元素。选项参数的每一项,我们可以经由过程体系供给的属性来构造本身的选项设置参数组,实现预期的功能。



[img]http://img.blog.csdn.net/20150104174022609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

源代码res/xml/preferences.xml

<?xml version="1.0" encoding="utf-8" ?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
<PreferenceCategory android:title='"背景灯光组"'> 
<ListPreference     //解释:该参数选项为列表框输入参数
android:key="light"             
android:title="灯光强度"                             //参数选项标题
android:summary="请选择灯光强度(测试ListPreference)" //参数选项二级标题
android:dialogTitle="请选择灯光强度"                 //弹出列表框的标题
android:entries="@array/light_strength_list"         //列表框将要显示的内容
android:entryValues="@array/light_value_list"/>       
</PreferenceCategory> 

<PreferenceCategory android:title="文字显示组"> 
<SwitchPreference 
android:key="autoScroll" 
android:title="主动滚屏" 
android:summaryOff="主动滚屏:封闭" 
android:summaryOn="主动滚屏:开启" 
android:defaultValue=http://www.sjsjw.com/100/000273MYM027880/"true"/> 
 

源代码res/xml/display_prefs.xml
 
 
 
 
 
 
 

 
 
 
 
[img]http://img.blog.csdn.net/20150104174028243?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
[img]http://blog.csdn.net/u012637501/article/details/42395039/file:/C:/Users/Jiangdongguo/AppData/Local/YNote/data/jiangdongguo2013@126.com/8729ec3cb6ff49619dc4b175c5cfb0fc/clipboard.png
解释:膳绫擎的界面构造文件定义了一个参数设置界面,该参数设置界面中包含两个参数设置组。一旦定义了参数设置的界面构造文件,我们再在PreferenceFragment中调用 addPreferencesFromResource(R.xml.preferences);办法加载选项设置构造文件到PreferenceFragment。

(1)android:key属性:
(2)res/values/array/数组
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string-array name="light_strength_list" >
         <item >暗</item>
         <item >亮</item>
         <item >最亮</item>
 </string-array>  
 <string-array name="light_value_list" >
         <item >1</item>
         <item >2</item>
         <item >3</item>
 </string-array>
</resources>
(4)修改工程文件AndroidManifest.xml设备、治理膳绫擎的三个Activity。即在清单文件的<application.../>元素中增长ExpandableListActivityTest和PreferenceActivityTest界面Activity。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android_activity_1"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="14" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".LaunchActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
          <activity
            android:name=".ExpandableListActivityTest"
            android:label="查看人种" >
        </activity>
       
            <activity
            android:name=".PreferenceActivityTest"
            android:label="设制揭捉项参数" >
        </activity>
    </application>
</manifest>

总结:上述应用经由过程PreferenceActivity生成选项设置列表界面;PreferenceFragment生成选项设置界面(如图(B))。应用PreferenceActivity来进行应用法度榜样选项参数的设置,体系会主动将设置的参数永远的保存到体系中。例如,我们单击设制揭捉项中的"填写竽暌姑户名"列表项,法度榜样将会主动保存设置的选项参数到手机/data/data/<应用法度榜样包名>/share_prefs路径下,文件名为<应用法度榜样包名>_preferences.xml。
三、PreferenceFragment详解

    在android的应用中平日都有setting功能,可以或许设置一些全局的选项,例如字体色彩,小我爱好等等。 这些器械都是存在一个xml中的,在android中对应的对象就是SharedPreferences。
        PreferenceFragment 照样 PreferenceActivity
       很明显PreferenceFragment 是Fregment, PreferenceActivity是Activity。
       当你的应用针对的体系在3.0以上的时刻,你就应当用PreferenceFragment,如今主流体系4.0的情况下,当然选择应用PreferenceFragment。原因是PreferenceFragment是一个加倍腻滑的构造,你可以将它依附在任何的activity膳绫擎,谷歌强力推荐应用PreferenceFragment!

 常用Preference
CheckPreference —— CheckBox 单选框
EditTextPreference —— EditText 输入文本框
ListPreference —— ListView 列表框
RingtonePreference —— 选择铃声
 XML定义常用的属性有:
android:key : 每个Preference控件环球无双的”ID”,独一表示此Preference。
android:defaultValue : 默认值。 例如,CheckPreference的默认值可为”true”,默认为选中状况;
EditTextPreference的默认值可为”110” 。
android:enabled : 表示该Preference是否可用状况。
android:title : 每个Preference在PreferenceScreen构造上显示的标题——大年夜标题
android:summary : 每个Preference在PreferenceScreen构造上显示的标题——小标题(可以没有)
ListPreference中:
android:entries:类型为array,控件欲显示的文本
android:entryValues:类型为array,与文本相对应的key-value键值对,value保存至sharedPreference文件


PreferenceFragment 应用步调(办法二)
1.定义preference在项目标res/xml中新建一个preferences.xml.用于定义菜单界面的设制揭捉项
(个中,android:entries 和 android:entryValues 定义在res/values/strings.xml中)
2.创建一个activity用于给PreferenceFragment 依附

  1. package com.example.androidpreferencefragment;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5.   
  6. public class SetPreferenceActivity extends Activity {  
  7.   
  8.     @Override  
  9.     protected void onCreate(Bundle savedInstanceState) {  
  10.         // TODO Auto-generated method stub  
  11.         super.onCreate(savedInstanceState);  
  12.           
  13.         getFragmentManager().beginTransaction().WordStr(android.R.id.content,  
  14.                 new PrefsFragment()).commit();  
  15.     }  
  16.   
  17. }


3. 创建PreferenceFragment。 
    implements OnSharedPreferenceChangeListener 是用于监听SharedPreference是否改变的。这里重要的感化是当SharedPreference改变的时刻及时更新界面中preference的summary,供给一个更好的交互。留意在OnResume和OnPause中要注册和卸载监听器,保护activity中的生命周期。注:不克不及给每个preference设置OnChangeListener来更新界面中preference的summary,如许会阻拦体系存储preference.xml.
  1. package com.example.androidpreferencefragment;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.content.SharedPreferences;  
  5. import android.content.SharedPreferences.OnSharedPreferenceChangeListener;  
  6. import android.os.Bundle;  
  7. import android.preference.Preference;  
  8. import android.preference.PreferenceFragment;  
  9. import android.preference.Preference.OnPreferenceChangeListener;  
  10.   
  11. @SuppressLint("NewApi")  
  12. public class PrefsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener{  
  13.   
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         // TODO Auto-generated method stub  
  17.         super.onCreate(savedInstanceState);  
  18.   
  19.         // Load the preferences from an XML resource  
  20.         addPreferencesFromResource(R.xml.preferences);  
  21.     }  
  22.   
  23.     @Override  
  24.     public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {  
  25.         // TODO Auto-generated method stub  
  26.         // Set summary to be the user-description for the selected value  
  27.         if(!key.equals(MainActivity.PRF_CHECK))  
  28.         {  
  29.             Preference connectionPref = findPreference(key);  
  30.             connectionPref.setSummary(sharedPreferences.getString(key, ""));  
  31.         }  
  32.     }  
  33.   
  34.     @Override  
  35.     public void onResume() {  
  36.         super.onResume();  
  37.         getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);  
  38.   
  39.     }  
  40.   
  41.     @Override  
  42.     public void onPause() {  
  43.         getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);  
  44.         super.onPause();  
  45.     }  
  46.   
  47. }  


4.设置默认
    当用户第一次运行应用的时刻,用户还没有设置本身preference,这时刻就要指定默认的prefernnce了。

      起首在xml定义好android:defaultValue项。然后在主Activity(也可所以其他activity,但在第一次运行的时刻必定会进去,比瘸懒屏Activity)的onCreate办法中调用setDefaultValues办法。   
  1. PreferenceManager.setDefaultValues(this, R.xml.preferences, false);  

这个函数有三个参数:
第一个为应用高低文,第二个是preference的id,第三个为false指只在第一次运行的时刻加载默认值。
5.掏出preference值

SharedPreferences mySharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);  
然后经由过程get办法和key值就可以掏出对应的值了,比如:
boolean my_checkbox_preference = mySharedPreferences.getBoolean("checkbox_preference", false);   
String my_edittext_preference = mySharedPreferences.getString("edittext_preference", ""); 
参考:
http://blog.csdn.net/silangquan/article/details/11022335


相关案例查看更多