`

SharedPreferences

 
阅读更多

android:SharedPreferences  

2011-06-03 11:07:13|  分类: 默认分类 |  标签: |字号 订阅

 
 

在android当中,SharedPreferences是一种轻量级数据存储,以键值对形式操作。

SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目录下,即一个xml文件。

 

 

支持3种访问模式

MODE_PRIVATE 私有、新内容覆盖原内容

●MODE_APPEND 新内容追加到原内容

MODE_WORLD_READABLE 全局读、允许其他应用程序读取

MODE_WORLD_WRITEABLE 全局写、允许其他应用程序写入,会覆盖原数据 这点没验证通过,其他程序不能修改,只能读

 

 

 

定义SharedPreferences

 

 

Java代码 

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME,MODE); //PREFERENCE_NAME与Android系统中保存的文件名相同

 

 

If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()). 第一次调用该函数并不会立即在系统创建xml文件,当获取editor并commit时,xml创建。

 

 

SharedPreferences修改

Java代码 
SharedPreferences.Editor editor=sharedPreferences.edit();  //通过SharedPreferences.Edior类修改

 

editor.putString("Name","Tom");  

editor.putInt("Age",20);  

editor.putFloat("Height",);  

editor.commit();  //调用Commit()函数保存修改内容

 

 

获取SharedPreferences内容

SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);//通过getSaredPerencesSharedPreferences

String name=sharedPreferences.getString("Name","Default Name"); //第二个参数为无法获取时的缺省值

int age=sharedPreferences.getInt("Age",20); 

float height=sharedPreferences.getFloat("Height",);

 

 

 

访问其他应用程序的SharedPreferences需要的3个条件

访问模式为全局读或全局写

需要知道共享者的包名和SharedPreferences名称,通过Context获取对象

需要知道每个数据的名称和数据类型以读取数据

 

Java代码 
Context c=null;

 

try{  

     c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY);  

}catch(NameNotFoundException e){  

     e.printStackTrace();  

SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE);  

 

 

 

  1. getPreferences():获取到作用域是本Activity的preference
  2. getSharedPreferences():获取到作用域是本应用程序的preference
  3. getDefaultSharedPreferences():获取到全局作用域的preference

以下示例让SharedPreferences保存用户选择的值:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics