SharedPreferences 数据存储功能

Posted jzdwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SharedPreferences 数据存储功能相关的知识,希望对你有一定的参考价值。

         这个是一个轻量级的存储类。实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences经常使用来存储一些轻量级的数据。我们今天来讲讲它怎样进行操作的。我们知道这个存储类仅仅能在同一个包类使用(类似于一个应用的全局变量)。

其存储位置在/data/data/<包名>/shared_prefs文件夹下。

SharedPreferences对象本身仅仅能获取数据而不支持存储和改动,存储改动是通过Editor对象实现。过程例如以下:

      1. 依据Context获取SharedPreferences对象(一般在能够在onCreate方法中直接调用getSharedPreferences()、或者採用Context ctx = 类名称.this; 

      2.利用edit()方法获取Editor对象(普通情况下,SharedPreferences对象获取数据,可是如存储数据则须要获取到它的Editor对象)。

      3.通过Editor对象存储key-value键值对数据。採用PutXXX(key。value)的方式进行存储。

      4.通过commit()方法提交数据。若没有运行此项步骤。则数据将不正确保存到xml文件里。

样例:

publicclass MainActivity extends Activity {
    @Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       
   //获取SharedPreferences对象
       Context ctx = MainActivity.this;       
       SharedPreferences sp = ctx.getSharedPreferences("test", MODE_PRIVATE);
//存入数据
       Editor editor = sp.edit();
       editor.putString("name", "zhangsan");
       editor.putInt("id", 1);
       editor.commit();
       
    }
}


     数据保存后怎样获取呢?步骤和上面几乎相同,可是少了获取Editor对象。

样例例如以下:

 //获取SharedPreferences对象
       Context ctx = MainActivity.this;       
       SharedPreferences sp = ctx.getSharedPreferences("test", MODE_PRIVATE);

//返回STRING_KEY的值
//假设NOT_EXIST不存在,则返回值为"none"
       Log.d("test", sp.getString("name", "none"));
       Log.d("test", sp.getInt("id", 0));

以上是关于SharedPreferences 数据存储功能的主要内容,如果未能解决你的问题,请参考以下文章

[技术博客] 利用SharedPreferences来实现登录状态的记忆功能

android开发之路11(用SharedPreferences存储数据)

Android入门文件存储与SharedPreferences存储

Android持久化技术

Android持久化技术

使用SharedPreferences进行数据存储