它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存,它是什么样的处理方式呢?SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android123提示最 终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
这种方式应该是用起来最简单的Android读写外部数据的方法了。他的用法基本上和 J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、 透明的方式来保存一些用户个性化设置的字体、颜色、位置等参数信息。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以 通过Preferences来保存,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。当然,如果你愿意保存其他的东西,也没有什么限制。只 是在性能上不知道会有什么问题。
实现SharedPreferences存储的步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据。
四、通过commit()方法提交数据。
具体代码的书写流程为:
A、存放数据信息
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
代码如下 | 复制代码 |
SharedPreferences settings = getSharedPreferences(“setting”, 0); |
2、让setting处于编辑状态
代码如下 | 复制代码 |
SharedPreferences.Editor editor = settings.edit(); |
3、存放数据
代码如下 | 复制代码 |
editor.putString(“name”,”ATAAW”); editor.putString(“URL”,”ATAAW.COM”); |
4、完成提交
代码如下 | 复制代码 |
editor.commit(); |
B、读取数据信息
1、获取Preferences
代码如下 | 复制代码 |
SharedPreferences settings = getSharedPreferences(“setting”, 0); |
2、取出数据
代码如下 | 复制代码 |
String name = settings.getString(“name”,”默认值”); String url = setting.getString(“URL”,”default”); |
以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:
代码如下 | 复制代码 |
DDMS->File Explorer /<package name>/shared_prefs/setting.xml |
例
代码如下 | 复制代码 |
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取SharedPreferences对象 Context ctx = MainActivity.this; SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE); //存入数据 Editor editor = sp.edit(); editor.putString("STRING_KEY", "string"); editor.putInt("INT_KEY", 0); editor.putBoolean("BOOLEAN_KEY", true); editor.commit(); //返回STRING_KEY的值 Log.d("SP", sp.getString("STRING_KEY", "none")); //如果NOT_EXIST不存在,则返回值为"none" Log.d("SP", sp.getString("NOT_EXIST", "none")); } } |
SP.xml文件的具体内容如下:
代码如下 | 复制代码 |
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>2 <map>3 <string name="STRING_KEY">string</string>4 <int name="INT_KEY" value="0" />5 <boolean name="BOOLEAN_KEY" value="true" />6 </map> |