admin 管理员组

文章数量: 1086019


2024年3月29日发(作者:compared with放句首做什么成分)

使用SharedPreferences存储List

什么是SharedPreferences

SharedPreferences是Android平台提供的一种轻量级的数据存储方式,用于存储

少量的键值对数据。它以XML文件的形式存储在设备的内部存储空间中,可以被多

个应用程序共享和访问。

SharedPreferences的特点如下:

简单易用:使用SharedPreferences可以方便地存储和获取数据,无需编写

复杂的数据库操作代码。

轻量级:SharedPreferences适用于存储少量的简单数据,不适合存储大量

的复杂数据。

高效性能:SharedPreferences的读写操作比数据库操作更快速,适用于需

要频繁读写的场景。

存储List到SharedPreferences

在Android开发中,经常会遇到需要将List保存到SharedPreferences的情况。

SharedPreferences本身只支持存储基本数据类型,如字符串、整数等,而不支持

直接存储List。但我们可以通过一些方法来实现将List存储到

SharedPreferences的功能。

方法一:将List转换为JSON字符串存储

一种常见的方法是将List转换为JSON字符串,然后将JSON字符串存储到

SharedPreferences中。当需要读取List时,再将JSON字符串转换回List。

首先,我们需要引入Gson库,它是Google提供的用于在Java对象和JSON数据之

间进行转换的库。在文件的dependencies中添加以下依赖:

implementation ':gson:2.8.7'

接下来,我们可以定义一个工具类来实现List和JSON字符串之间的转换:

import ;

import ken;

import ;

import ;

public class ListUtils {

private static Gson gson = new Gson();

public static String listToJson(List list) {

return (list);

}

public static List jsonToList(String json) {

Type type = new TypeToken>() {}.getType();

return on(json, type);

}

}

以上工具类中的listToJson方法将List转换为JSON字符串,而jsonToList方法

将JSON字符串转换为List。

接下来,我们可以使用SharedPreferences存储List。假设我们要存储一个字符

串类型的List,可以按照以下步骤进行操作:

// 获取SharedPreferences对象

SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", C

_PRIVATE);

// 将List转换为JSON字符串

List stringList = new ArrayList<>();

("item1");

("item2");

("item3");

String json = Json(stringList);

// 将JSON字符串存储到SharedPreferences

editor = ();

ing("list_key", json);

();

以上代码中,我们通过SharedPreferences的edit方法获取到Editor对象,然后

使用putString方法将JSON字符串存储到SharedPreferences中,并通过apply

方法提交保存操作。

方法二:将List转换为逗号分隔的字符串存储

另一种方法是将List转换为逗号分隔的字符串,然后将字符串存储到

SharedPreferences中。当需要读取List时,再将字符串按逗号分隔转换回List。

我们可以定义一个工具类来实现List和字符串之间的转换:

public class ListUtils {

public static String listToString(List list) {

StringBuilder stringBuilder = new StringBuilder();

for (String item : list) {

(item).append(",");

}

if (() > 0) {

CharAt(() - 1);

}

return ng();

}

public static List stringToList(String string) {

return ((","));

}

}

以上工具类中的listToString方法将List转换为逗号分隔的字符串,而

stringToList方法将逗号分隔的字符串转换为List。

使用SharedPreferences存储List的代码示例:

// 获取SharedPreferences对象

SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", C

_PRIVATE);

// 将List转换为逗号分隔的字符串

List stringList = new ArrayList<>();

("item1");

("item2");

("item3");

String string = String(stringList);

// 将字符串存储到SharedPreferences

editor = ();

ing("list_key", string);

();

以上代码中,我们通过SharedPreferences的edit方法获取到Editor对象,然后

使用putString方法将字符串存储到SharedPreferences中,并通过apply方法提

交保存操作。

读取SharedPreferences中的List

当需要读取SharedPreferences中的List时,我们可以按照以下步骤进行操作。

方法一:从JSON字符串中读取List

假设我们之前将List以JSON字符串的形式存储到SharedPreferences中,现在需

要读取它:

// 获取SharedPreferences对象

SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", C

_PRIVATE);

// 从SharedPreferences中读取JSON字符串

String json = ing("list_key", "");

// 将JSON字符串转换为List

List stringList = List(json);

以上代码中,我们通过SharedPreferences的getString方法获取到之前存储的

JSON字符串,然后通过ListUtils工具类的jsonToList方法将JSON字符串转换

为List。

方法二:从逗号分隔的字符串中读取List

假设我们之前将List以逗号分隔的字符串的形式存储到SharedPreferences中,

现在需要读取它:

// 获取SharedPreferences对象

SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", C

_PRIVATE);

// 从SharedPreferences中读取逗号分隔的字符串

String string = ing("list_key", "");

// 将逗号分隔的字符串转换为List

List stringList = ToList(string);

以上代码中,我们通过SharedPreferences的getString方法获取到之前存储的逗

号分隔的字符串,然后通过ListUtils工具类的stringToList方法将逗号分隔的

字符串转换为List。

总结

本文介绍了在Android开发中使用SharedPreferences存储List的方法。我们可

以将List转换为JSON字符串或逗号分隔的字符串,然后将其存储到

SharedPreferences中。当需要读取List时,再将存储的字符串转换回List。通

过这种方式,我们可以方便地将List作为SharedPreferences的值进行存储和读

取,实现数据的持久化存储。


本文标签: 字符串 方法 转换 操作 分隔