ShareedPreferences存储
来源:互联网 发布:网络连接服务器 编辑:程序博客网 时间:2024/06/06 12:00
ShareedPreferences使用键值对的方式存储数据,支持多种不同的数据类型存储。除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
一、存储数据:
SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
Context类的getSharedPreferences()方法。
实现SharedPreferences存储的步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据,putXXX()方法。
四、通过commit()方法提交数据。
例子:
<span style="font-size:18px;">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")); } }</span>
高仿拉手网项目中的例子:
新建工具类utils文件,重写这三个静态方法
<span style="font-size:18px;">public class ToolKits {//写getSharedPreferences()方法,本例中写成个方法更方便使用public static SharedPreferences getSharedPreferences(Context context) {return context.getSharedPreferences("com.xuexi.lashou", Context.MODE_PRIVATE);}//写方法putBooble()public static void putBooblean(Context context,String key,boolean value) {SharedPreferences sharedPreferences= getSharedPreferences(context);SharedPreferences.Editor editor = sharedPreferences.edit();editor.putBoolean(key, value);editor.commit();}//读方法getBooble()public static boolean getBoolean(Context context,String key,boolean defaultValue) {return getSharedPreferences(context).getBoolean(key, defaultValue);}}</span>
WelcomeActivity中OnCreate()方法内实现判断
new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message arg0) {if(!ToolKits.getBoolean(WelcomeActivity.this, IS_FIRST, false)){startActivity(new Intent(WelcomeActivity.this, WhatsNewActivity.class));//如果是第一次使用,则跳转到欢迎页ToolKits.putBooblean(WelcomeActivity.this, IS_FIRST, true);}else{startActivity(new Intent(WelcomeActivity.this,MainActivity.class));//不是,则跳转到主界面}ToolKits.putBooblean(WelcomeActivity.this, IS_FIRST, true);//调用工具类的方法,保存内容到SharedPreferencesreturn true; }}).sendEmptyMessageDelayed(0, 3000);
- ShareedPreferences存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 存储
- 数据存储-简单存储
- 存储过程、存储函数
- 列存储、行存储
- 顺序存储 链式存储
- android之文件存储详解
- 【hadoop】 1001-hadoop介绍
- 数据结构 第一章 思维导图
- SQLite:关于日期的字段的优化将给Julia带来大幅效率提升
- 江苏科技大学2014-2015年物流管理考试重点
- ShareedPreferences存储
- python 字典列表 列表字典
- 状态模式案例学习
- Android在一个应用中调用另一个应用
- 第七章 知识导图
- 写文章时输出特殊形式小结
- zk 学习笔记
- 无限级别联动,怎样才能做活?
- 使用git应用补丁文件