android2.3如何使用SharedPreferences存储字符串集合类型的元素

合集下载

Android_存储之SharedPreferences

Android_存储之SharedPreferences

Android_存储之SharedPreferences⼀、概述SharedPreferences是⼀种轻量级的数据存储⽅式,采⽤键值对的存储⽅式。

SharedPreferences只能存储少量数据,⼤量数据不能使⽤该⽅式存储,⽀持存储的数据类型有booleans, floats, ints, longs, and strings。

SharedPreferences存储到⼀个XML⽂件中的,路径在/data/data/<packagename>/shared_prefs/下,⽂件名以及存储后⾯详细讲述。

⼆、基本⽤法1.获取SharedPreferences对象要创建存储⽂件或访问已有数据,⾸先要获取SharedPreferences才能进⾏操作。

获取SharedPreferences对象有下⾯两个⽅式:(1)getSharedPreferences(String name, int mode) --- 通过Context调⽤该⽅法获得对象。

它有两个参数,第⼀个name 指定了SharedPreferences存储的⽂件的⽂件名,第⼆个参数mode 指定了操作的模式。

这种⽅式获取的对象创建的⽂件可以被整个应⽤所有组件使⽤,有指定的⽂件名。

(2)getPreferences(int mode) --- 通过Activity调⽤获得对象。

它只有⼀个参数mode 指定操作模式。

这种⽅式获取的对象创建的⽂件属于Activity,只能在该Activity中使⽤,且没有指定的⽂件名,⽂件名同Activity名字。

如:mContextSp = this.getSharedPreferences( "testContextSp", Context.MODE_PRIVATE );---创建的⽂件名是,testContextSp.xmlmActivitySp = this.getPreferences( Context.MODE_PRIVATE );---创建的⽂件名是,MainActivity.xml(该Activity叫MainActivity)操作模式(mode):两个⽅式都有⼀个mode参数,mode具体有4个值,最新的只能使⽤默认模式 Context.MODE_PRIVATE。

Android文件存储与SharedPreferences存储方式详解用法

Android文件存储与SharedPreferences存储方式详解用法

Android⽂件存储与SharedPreferences存储⽅式详解⽤法⽬录持久化技术简介⽂件存储1. 将数据存储到⽂件中2. 从⽂件中读取数据SharedPreferences 存储1. 将数据存储到 SharedPreferences 中2. 从 SharedPreferences 中读取数据持久化技术简介数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在⼿机或计算机关机的情况下,这些数据也不会丢失。

保存在内存中的数据是处于瞬时状态的,⽽保存在存储设备的数据是处于持久状态的。

持久化技术提供了⼀种机制,可以让数据在瞬时状态和持久状态之间进⾏切换⽂件存储1. 将数据存储到⽂件中⽂件存储是 Android 中最基本的数据存储⽅式,它不对存储的内容进⾏格式化处理,所有数据都是原封不动的保存到⽂件当中,适合存储⼀些简单的⽂本数据或⼆进制数据Context类提供了⼀个openFileOutput()⽅法,可以将数据存储到指定的⽂件中fun save(inputText: String) {try {val output = openFileOutput("data", Context.MODE_PRIVATE)val writer = BufferedWriter(OutputStreamWriter(output))e {it.write(inputText)}} catch (e: IOException) {e.printStackTrace()}}openFileOutput()⽅法接收两个参数:第⼀个参数是⽂件名,在⽂件创建的时候使⽤。

指定的⽂件名可以不包含路径,因为所有的⽂件都默认存储到/data/data/<package name>/files/ ⽬录下第⼆个参数是⽂件的操作模式,主要有MODE_PRIVATE和MODE_APPEND两种模式可选,默认是MODE_PRIVATE,表⽰当指定相同⽂件名时,所写⼊的内容将会覆盖原⽂件的内容。

sharedpreferences使用

sharedpreferences使用

sharedpreferences使用SharedPreferences是Android中一种轻量级的数据存储方式,它可以用来存储一些简单的键值对数据,比如用户的偏好设置、应用程序的配置信息等。

SharedPreferences的使用非常简单,下面我将为大家介绍一下SharedPreferences的使用方法。

1. 获取SharedPreferences对象在使用SharedPreferences之前,我们需要先获取一个SharedPreferences对象。

获取SharedPreferences对象的方法有两种,一种是通过Context的getSharedPreferences()方法获取,另一种是通过PreferenceManager的getDefaultSharedPreferences()方法获取。

这两种方法的区别在于,getSharedPreferences()方法需要指定SharedPreferences的名称和模式,而getDefaultSharedPreferences()方法则使用默认的SharedPreferences名称和模式。

例如,我们可以通过以下代码获取一个名为“my_preferences”的SharedPreferences对象:SharedPreferences preferences =getSharedPreferences("my_preferences",Context.MODE_PRIVATE);或者,我们也可以通过以下代码获取默认的SharedPreferences对象:SharedPreferences preferences =PreferenceManager.getDefaultSharedPreferences(this);2. 存储数据获取SharedPreferences对象之后,我们就可以使用它来存储数据了。

SharedPreferences支持存储的数据类型包括Boolean、Float、Int、Long和String。

sharedpreferences 存储集合

sharedpreferences 存储集合

`SharedPreferences` 是Android 平台上一个非常重要的存储方式,主要用于存储一些轻量级的数据,这些数据一般比较小,主要用于保存一些基本类型的数据,如String, int, boolean 等。

然而,SharedPreferences 不直接支持集合(Collection)的存储,它主要支持键值对的存储。

如果你需要存储一个集合,你可能需要转换你的数据结构,或者使用其他的数据存储方式。

如果你想存储一个集合,你可以选择以下几种方式:
1. 将集合转换为字符串(或者二进制):你可以将集合转换为一个字符串(例如,使用JSON 格式),然后使用SharedPreferences 保存这个字符串。

在读取数据时,你需要将这个字符串再转换回集合。

2. 使用SQLite 数据库:SQLite 是一个轻量级的数据库,它支持存储复杂的数据类型,包括集合。

你可以创建一个表来存储你的集合。

3. 使用文件:你也可以将集合数据写入一个文件,然后在需要时从文件中读取。

这种方式的缺点是读写操作通常比较慢,而且对文件路径和名称的管理也需要额外的代码。

注意:SharedPreferences 主要用于存储小量的数据,如果你需要存储大量的数据,或者复杂的数据结构(如集合、列表等),那么你
可能需要考虑使用SQLite 数据库或其他的数据存储方式。

Android SharedPreferences存储数据 用法解析

Android SharedPreferences存储数据 用法解析

Android SharedPreferences存储数据 用法解析最近做一个关于股票搜索功能的应用,其中有一个关于自选股票的存储,数据量也不大,就想到了SharePerferences,但对它我也也只是知道,于是乎做了个例子,与大家分享,希望能一起了解它。

首先,我们得了解SharePerferences是一种以键值对方式存储,通过XML形式将数据存储在设备中,网络上也列举了很多例子,其中估计谈论最多的就是存储登陆用户的用户名和密码。

其中有一个最重要的环节就是它只能在创建的那个包中使用,也就是在一个应用中使用。

(说到这自我感觉它很像我们在编写B/S应用中的cookie,不知道说得对不对)。

其次,一般SharePerferences保存的存储文件都存放在/data/data/<package name>/shares_prefs文件夹下。

剩下的就是对其进行添加、删除、修改等操作,同时我在了解它的时候在网上看到有朋友说clear文件之后数据还在,估计多半是没有commit()的缘故。

下面是一个PreferceHelper类:Java代码1.publicclassPreferceHelper{2.3.4.5.SharedPreferencessp;6.7.8.9.SharedPreferences.Editoreditor;10.11.12.13.Contextcontext;14.15.16.17.StringXMLNAME;18.19.20.21.publicPreferceHelper(Contextc,Stringname){22.23.24.25.context=c;26.27.28.29.XMLNAME=name;30.31.32.33.sp=context.getSharedPreferences(name,Context.MODE_PRIVATE);34.35.36.37.editor=sp.edit();38.39.40.41.}42.43.44.45.publicvoidputValue(Stringkey,Stringvalue){46.47.48.49.editor=sp.edit();50.51.52.53.editor.putString(key,value);54.55.56.mit();58.59.60.61.}62.63.64.65.publicStringgetValue(Stringvalue){66.67.68.69.returnsp.getString(value,null);70.71.72.73.}74.75.76.77.publicvoidRemoveItem(Stringkey){78.79.80.81.SharedPreferencess=context.getSharedPreferences(XMLNAME,0);82.83.84.85.s.edit().remove(key).commit();86.87.88.89.}90.91.92.93.publicvoidClearData(){94.95.96.97.editor.clear().commit();98.99.100.101.}102.103.104.105.}。

sharedpreferences的用法

sharedpreferences的用法

SharedPreferences是Android系统中用来保存应用配置信息的一种轻量级存储方式。

它主要通过SharedPreferences.Editor对象来进行数据的添加、删除和修改操作。

可以用来保存诸如用户偏好、设置等简单的数据。

以下是如何使用SharedPreferences的步骤:
1. 获取SharedPreferences对象。

我们可以使用三种方式来获取SharedPreferences对象,第一种是通过Context.getSharedPreferences()方法,第二种是通过Activity.getPreferences()方法,第三种是通过PreferenceManager.getDefaultSharedPreferences()方法。

2. 得到SharedPreferences.Editor对象。

通过调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。

3. 使用SharedPreferences.Editor对象进行数据的添加、删除和修改操作。

SharedPreferences.Editor对象提供了putXxx()方法系列,用于添加键值对,例如putString()、putInt()等;也提供了remove()方法用于删除键值对,还提供了commit()方法用于提交修改操作。

注意,SharedPreferences只适用于存储简单的键值对数据,对于复杂的数据结构,例如列表、树等,需要使用SQLite数据库或其他文件存储方式。

sharedpreferences的作用和使用方法

SharedPreferences是Android平台上一个轻量级的存储类,主要用于保存应用的一些常用配置,如Activity状态等。

当Activity暂停时,可以将此Activity的状态保存到SharedPreferences中,当Activity重载时,系统回调方法onSaveInstanceState会从SharedPreferences中取出之前保存的值。

SharedPreferences提供了Java常规的Long、Int、String等类型数据的保存接口,其存储的数据以XML格式保存在本地文件中。

使用SharedPreferences存储数据相对简单,主要通过以下步骤进行:获取SharedPreferences对象:可以通过调用Context类的getSharedPreferences()方法来获取SharedPreferences对象,第一个参数为文件名,第二个参数为操作模式,通常使用MODE_PRIVATE。

获取SharedPreferences.Editor对象:通过调用SharedPreferences 对象的edit()方法来获取SharedPreferences.Editor对象,用于添加、删除、修改数据。

添加、删除、修改数据:使用SharedPreferences.Editor对象提供的putXxx()或remove()方法来添加或删除数据,其中Xxx表示具体的类型,如String、Int等。

提交数据:完成数据的添加、删除、修改后,需要调用commit()方法来提交数据。

需要注意的是,SharedPreferences的读写操作是线程不安全的,如果在多线程环境下使用SharedPreferences,可能会导致数据读写不一致的问题。

因此,如果需要在多线程环境下读写SharedPreferences,需要进行相应的同步处理。

sharedpreferences存储 list

sharedpreferences存储 list SharedPreferences是Android开发中常用的一种轻量级存储方案,它提供了一种简单方便的方式来存储和访问数据。

SharedPreferences可以用来存储各种类型的数据,包括字符串、整数、浮点数、布尔值等。

而如果需要存储一个列表(List)数据,可以借助SharedPreferences来实现。

SharedPreferences是基于键值对的存储方式,在存储List之前,我们需要先将List转换成字符串形式,然后存储到SharedPreferences中。

而在需要读取List时,则需要将字符串形式转换为List。

下面我们将分为两部分来介绍SharedPreferences存储List的具体操作,分别是List转换为字符串和字符串转换为List的过程。

一、List转换为字符串假设我们有一个List<String>类型的数据需要存储,首先,我们需要将List转换为一个字符串形式,可以选择使用JSON或者自定义格式来表示。

如果选择使用JSON格式,可以使用Gson库进行转换。

首先,我们需要在项目的build.gradle文件中添加Gson库的依赖,如下所示:```javadependencies {implementation 'com.google.code.gson:gson:2.8.7'}```然后,我们可以使用以下代码将List转换为字符串形式:```javaList<String> list = new ArrayList<>();//添加数据到list中Gson gson = new Gson();String json = gson.toJson(list);```在上述代码中,我们首先创建了一个List对象,并添加了一些数据。

然后,创建了一个Gson对象,通过调用toJson方法将list转换为JSON字符串。

sharedpreferences 用法

sharedpreferences 用法(实用版)目录1.SharedPreferences 简介2.SharedPreferences 基本用法3.SharedPreferences 存储数据4.SharedPreferences 获取数据5.SharedPreferences 的优缺点正文【1.SharedPreferences 简介】SharedPreferences 是 Android 系统提供的一种轻量级的存储数据方式,主要用于存储应用的一些常用配置。

相较于其他存储方式,如SQLite 数据库和文件存储,SharedPreferences 具有存储数据量小、读写速度快、安全性高等特点。

【2.SharedPreferences 基本用法】要使用 SharedPreferences,首先需要导入android.content.SharedPreferences 包。

然后,在AndroidManifest.xml 文件中添加相应的访问权限:```<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ```接下来,在 Activity 或 Fragment 中创建一个SharedPreferences 对象,并通过 getSharedPreferences() 方法获取到:```SharedPreferences preferences =getSharedPreferences("my_prefs", MODE_PRIVATE);```其中,"my_prefs"为 SharedPreferences 的文件名,MODE_PRIVATE 表示私有模式,即只有当前应用可以访问该 SharedPreferences。

【3.SharedPreferences 存储数据】SharedPreferences 采用键值对(key-value)的方式存储数据。

sharedpreferences存储集合

sharedpreferences存储集合1. 什么是SharedPreferences?在Android开发中,SharedPreferences是一种轻量级的存储键值对数据的方式,通常用于存储应用程序的配置信息或用户的偏好设置。

SharedPreferences使用XML文件来存储数据,可以方便地实现数据的读取和写入。

2. SharedPreferences的使用场景SharedPreferences适用于以下场景:•存储应用程序的配置信息,如是否首次打开应用、语言设置等。

•存储用户的偏好设置,如主题颜色、字体大小等。

•存储用户的登录状态、登录凭证等。

3. SharedPreferences的基本操作3.1 获取SharedPreferences对象要使用SharedPreferences,首先需要获取SharedPreferences对象。

可以通过以下方法来获取:SharedPreferences sharedPreferences = getSharedPreferences("config", Context.M ODE_PRIVATE);其中,第一个参数是SharedPreferences的名称,第二个参数是访问模式。

MODE_PRIVATE表示只有当前应用程序可以访问该SharedPreferences。

3.2 存储数据使用SharedPreferences存储数据非常简单,可以使用SharedPreferences.Editor对象的put方法来存储数据。

以下是一些常用的存储方法示例:SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString("username", "张三");editor.putInt("age", 20);editor.putBoolean("isLogin", true);editor.apply(); // 提交数据其中,putString方法用于存储字符串类型的数据,putInt方法用于存储整型数据,putBoolean方法用于存储布尔型数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

android2.3如何使用SharedPreferences存储字符串集合类型的元素Android3.0以上版本中SharedPreferences新增了函数
abstract Set<String> getStringSet(String key, Set<String> defValues)
Retrieve a set of String values from the preferences.
同时SharedPreferences.Editor中也新增了函数
abstract SharedPreferences.Editor putStringSet(String key, Set<String> values)
Set a set of String values in the preferences editor, to be written back once commit() is called.
这样可以直接存储一个字符串集合,但是android3.0以前的版本中没有,如何在android2.3的系统中寻找一种替代他们的方式,我们可以猜想下上面两个函数的实现,直接看代码:public class SharedPreferencesHandler {
final static String regularEx = "|";
public static Set<String> getStringSet(SharedPreferences prefs, String key,
Set<String> defValues) {
String str = prefs.getString(key, "");
if (!str.isEmpty()) {
String[] values = str.split(regularEx);
if (defValues == null) {
defValues = new HashSet<String>();
for (String value : values) {
if (!value.isEmpty()) {
defValues.add(value);
}
}
}
}
return defValues;
}
public static SharedPreferences.Editor putStringSet(
SharedPreferences.Editor ed, String key, Set<String> values) {
String str = "";
if (values != null | !values.isEmpty()) {
Object[] objects = values.toArray();
for (Object obj : objects) {
str += obj.toString();
str += regularEx;
}
ed.putString(key, str);
}
return ed;
}
}
然后使用的时候可以这样存储和获取一个字符串的集合:
final Set<String> snoozedIds = SharedPreferencesHandler
.getStringSet(prefs, PREF_SNOOZE_IDS, new HashSet<String>());
// prefs.getStringSet(PREF_SNOOZE_IDS,
// new HashSet<String>());
snoozedIds.add(Integer.toString(id));
final SharedPreferences.Editor ed = prefs.edit();
SharedPreferencesHandler.putStringSet(ed, PREF_SNOOZE_IDS,
snoozedIds);
// ed.putStringSet(PREF_SNOOZE_IDS, snoozedIds);
ed.putLong(getAirPrefSnoozeTimeKey(id), time);
ed.apply();
上面代码亲测了。

相关文档
最新文档