博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 开发笔记 “SharePreference 数据存取”
阅读量:6913 次
发布时间:2019-06-27

本文共 2418 字,大约阅读时间需要 8 分钟。

除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

  一、根据Context获取SharedPreferences对象

  二、利用edit()方法获取Editor对象。

  三、通过Editor对象存储key-value键值对数据。

  四、通过commit()方法提交数据。

     具体实现代码如下:

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"));
     }
 }

sharedPreferences常用的属性和方法

方法名称

描述

public abstract boolean contains (String key)

判断SharedPreferences是否包含特定key的数据

public abstract SharedPreferences.Editor edit ()

返回一个Edit对象用于操作SharedPreferences

public abstract Map<String, ?> getAll ()

获取SharedPreferences数据里全部的key-value对

getXXX(String key,XXX defvlaue)

获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值

由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据和读取数据的能力。但是在其内部有一个Editor内部的接口,Edit这个接口有一系列的方法用于操作SharedPreference。

Editor接口的常用方法

方法名称

描述

public abstract SharedPreferences.Editor clear ()

清空SharedPreferences里所有的数据

public abstract boolean commit ()

当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改

public abstract SharedPreferences.Editor putXXX (String key, boolean XXX)

向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、long、String等基本类型的值

public abstract SharedPreferences.Editor remove (String key)

删除SharedPreferences里指定key对应的数据项

 

SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例

name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package name>/shared_prefs下(这个面试常问到)

mode:是指定读写方式,其值有三种,分别为:

Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写

Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写

Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。

 

 

更多信息可以查看:http://blog.sina.com.cn/s/blog_4f1c99de0101hur1.html

转载于:https://www.cnblogs.com/Dylanblogs/p/4190234.html

你可能感兴趣的文章
linux命令行关机
查看>>
Lync 小技巧-38-Lync Server 2013与Exchange Server高可用环境-集成
查看>>
[Everyday Mathematics]20150102
查看>>
Android学习笔记PreferenceFragment的使用
查看>>
用开源项目circular progress button实现有进度条的Button
查看>>
java基础篇---枚举详解
查看>>
UpdatePanel的用法
查看>>
Ehcache(07)——Ehcache对并发的支持
查看>>
关于Eclipse中配置产品启动的插件
查看>>
在循环中创建网页元素的问题
查看>>
ACM零散知识
查看>>
【转】Spring@Autowired注解与自动装配
查看>>
JVM学习笔记(一)------基本结构
查看>>
【Intel AF 2.1 学习笔记三】
查看>>
知名黑客组织Anonymous(匿名者)的装备库
查看>>
Mac OS中Java Servlet与Http通信
查看>>
微软职位内部推荐-Principal Software Eng Mgr
查看>>
MySQL 添加外键约束,不检查现有数据
查看>>
arduino一些内容
查看>>
Entity Framework 基础知识走马观花
查看>>