如何存储数组到sharedpreference中

Posted

tags:

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

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

步骤如下:

一、根据Context获取SharedPreferences对象

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

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

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

具体实现代码如下:实现存储,读取,清除,删除

效果图:

private void write() // 存入数据
      savename = name.getText().toString().trim();
      saveage = Integer.valueOf(age.getText().toString().trim());
      Editor editor = mShared.edit();
      editor.putString("name", savename);
      editor.putInt("age", saveage);
      // 保证操作的事务完整性
      editor.commit();
  

阅读:

private String read() // 从数据库里读取数据
      namecontent = mShared.getString("name", "数据库里没有存储姓名");
      agecontent = mShared.getInt("age", 0);
      String reading = "姓名:" + namecontent + "\\n年龄:" + agecontent;
      return reading;
   

清除内容:

private void clear() //清除内容
      /** 开始清除SharedPreferences中保存的内容 **/
      Editor editor = mShared.edit();
      editor.remove("name");
      editor.remove("age");
      editor.commit();
 
  

删除文件:

private void delete() //删除文件
      /** 删除SharedPreferences文件 **/
      Filefile = new File("/data/data/cn.csdn.activity" + "/shared_prefs/"
            + SHARED_MAIN_XML + ".xml");
      if (file.exists())
         file.delete();
         Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show();
     
  

haredPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

参考技术A SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:
  一、根据Context获取SharedPreferences对象
  二、利用edit()方法获取Editor对象。
  三、通过Editor对象存储key-value键值对数据。
  四、通过commit()方法提交数据。本回答被提问者和网友采纳

以上是关于如何存储数组到sharedpreference中的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何在 SharedPreferences for android 中存储字符串数组

Flutter 将 JSON 数组保存到 SharedPreferences

在Android中的SharedPreferences中存储数组的最有效方法是什么?

是否可以将数组或对象添加到 Android 上的 SharedPreferences

关于SharedPreferences写入和删除数组数据

如何使用提供程序将 List<object> 存储在 sharedpreferences 中?