- <pre code_snippet_id="220451" snippet_file_name="blog_20140306_1_1587302" class="java" name="code">/*
- * Android数据存储之SharedPreferences
- * 步骤:
- * 一、根据Context获取SharedPreferences对象
- * 二、利用edit()方法获取Editor对象。
- * 三、通过Editor对象存储key-value键值对数据。
- * 四、通过commit()方法提交数据。
- */
- public void setSharedPreferences(){
- //一、根据Context获取SharedPreferences对象
- SharedPreferences sharedPreferences=context.getSharedPreferences("bill", MODE_PRIVATE);
- /*
- * context.getSharedPreferences("bill",MODE);
- * MODE模式支持以下几种:
- *1、 检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
- *SharedPreferences sharedPreferences=context.getSharedPreferences("bill", MODE_APPEND);
- *2、表示当前文件可以被其他应用读取
- *SharedPreferences sharedPreferences=context.getSharedPreferences("bill", MODE_WORLD_READABLE);
- *3、表示当前文件可以被其他应用写入
- *SharedPreferences sharedPreferences=context.getSharedPreferences("bill", MODE_WORLD_WRITEABLE);
- */
- //二、利用edit()方法获取Editor对象。
- Editor editor=sharedPreferences.edit();
- //三、通过Editor对象存储key-value键值对数据。
- Set<String> values=new HashSet<String>();
- editor.putBoolean("boolean", true);//存储Boolean类型
- editor.putFloat("float", 3);//存储float类型
- editor.putInt("int", 1);//存储int类型
- editor.putLong("long", 4);//存储long类型
- editor.putString("string", "billgu");//存储string类型
- editor.putStringSet("set", values);//存储set多维数组
- // 四、通过commit()方法提交数据。
- editor.commit();
- /*
- * 数据存存储完毕,以下是在相应事件或其他activity中去读取存储的数据
- */
- SharedPreferences sharedPreferences_read=context.getSharedPreferences("bill", MODE_PRIVATE);
- Boolean bool=sharedPreferences_read.getBoolean("boolean", false);//默认false
- float floa=sharedPreferences_read.getFloat("float", 0);//默认0
- int in=sharedPreferences_read.getInt("int", 0);//默认0
- long lon=sharedPreferences_read.getLong("long", 0);//默认0
- String string=sharedPreferences_read.getString("string", null);//默认null
- Set<String> set=sharedPreferences_read.getStringSet("set", null);//默认null
- Toast.makeText(context, "读到数据:"+floa+"\n"+in+"\n"+lon+"\n"+string, Toast.LENGTH_SHORT).show();
- }
SharedPreferences存储共享变量的文件路径位于“/data/data/应用程序包/shared_prefs”目录下,通过adb shell,可以看到如下所示:
查看当前目录:
# pwd
/data/data/com.min.ijoke/shared_prefs
显示当前目录下的文件:
min_ijoke.xml // 此文件就是存储SharedPreferences变量的文件
AppSettings.xml
PushFlag.xml
Finalize_Flag.xml
ShowAdFlag.xml
Start_Tag.xml
查看SharedPreferences变量的文件内容,都是键值对形式存储在xml文件中的。
以下是我的程序中使用到的变量和值: