android SharedPreferences 使用
来源:互联网 发布:启明软件股份有限公司 编辑:程序博客网 时间:2024/06/03 22:42
android提供了五种存储数据的方式,分别是:SharedPreferences、文件存储、Sqlite数据库、ContentProvider以及网络存储数据,在本文中,我们将介一下SharedPreferences的使用。
SharedPreferences是用来存储程序运行时需要的一些数据,比如配置信息,以xml的格式存放在/data/data/<package name>/shared_prefs目录下,在本运用间可以共享。
import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.content.SharedPreferences.OnSharedPreferenceChangeListener;import android.os.Bundle;import android.util.Log;public class SharedPreferencesDemo extends Activity{private String spFileName = "database";@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);/** * ContextWrapper中提供了返回SharedPreferences对象的公共方法, * 即是在运用Application中都可以共享SharedPreferences中的数据 * arg0:文件名 * arg1:文件创建方式,默认为0或者Content.MODE_PRIVATE */SharedPreferences sp = getSharedPreferences(spFileName,Context.MODE_PRIVATE);/** * Editor是SharedPreferences中的一个嵌套接口 * 任何关于SharedPreferences数据更新的操作都必须通过Editor完成 */Editor editor = sp.edit();// Editor可以保存int、float、boolean、long和String几大类型数据editor.putString("host", "127.0.0.1");editor.putInt("port", 3306);editor.putString("usename", "root");editor.putString("password", "root");editor.putString("charset", "utf-8");editor.putString("key", "------------");// 对数据进行更新以后,必须调用commit()方法editor.commit();}}
运行程序后,在File Explore视图里的/data/data/<package name>/shared_prefs目录下,可以发现有一个database.xml的文件,如下图:
打开文件,可以看到:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map> <int name="port" value="3306" /> <string name="charset">utf-8</string> <string name="host">127.0.0.1</string> <string name="usename">root</string> <string name="password">root</string></map>
这下明白了吧,SharedPreferences是以key---value的形式包数据保存在xml文件了,值得注意的是,SharedPreferences是不能保存重复数据的,在使用Editor.putXXX()方式写入数据是,它会一句key只判断该条数据是否已存在,不存在则追加,存在则更新。SharedPreferences也提供了监听数据是否被更新的方法:
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener(){@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key){Log.e("SharedPreference", key);}});
SharedPreferences对数据写入的限制也是其轻量级存储方法的一个体现,它获取数据同样简单:
SharedPreferences sp2 = getSharedPreferences(spFileName, Context.MODE_PRIVATE);boolean flag = sp == sp2;Log.e("flag", String.valueOf(flag));String host = sp2.getString("host", "");Log.e("host", host);String username = sp2.getString("username", "");Log.e("username", username);String password = sp2.getString("password", "");Log.e("password", password);int port = sp2.getInt("port", 0);Log.e("port", String.valueOf(port));
0 0
- android SharedPreferences使用
- android SharedPreferences 的使用
- Android SharedPreferences的使用
- android中SharedPreferences使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences 使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences 的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences 使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- Android SharedPreferences使用类
- iOS音频播放学习(2)
- 1000. Minimum Weight
- Java Static关键字
- VELT-0.1.2开发:断点错误处理
- erlang的makefile编译问题
- android SharedPreferences 使用
- Non-Blind图像反卷积论文整理
- 安装linux系统之后,开机时没有Windows系统选项的解决办法(Ubuntu,Deepin,Centos,Redhat,Fedora)
- Object-C内存管理
- 与端口冲突有关的一个低概率bug的定位过程(这次不是360的错啊)---浅谈bind()函数返回失败
- “扫地僧”李小文
- win7+ubuntu14.04双系统安装
- 回调函数和枚举
- #Android笔记#线程与消息处理之Handler