📅  最后修改于: 2023-12-03 14:53:51.588000             🧑  作者: Mango
在 Android 中,数据可以以不同的方式存储,其中一个常用的方法是通过 SharedPreferences。SharedPreferences 是一个轻量级的 key-value 数据存储方式,可以用来存储简单的数据类型,比如字符串、布尔值、整型、浮点型等。SharedPreferences 是一个以 XML 文件作为存储介质的存储方式,这使得它易于使用和维护。
要使用 SharedPreferences,我们需要先获取到它的实例。我们可以通过 Context 的 getSharedPreferences() 方法或者 PreferenceManager 的 getDefaultSharedPreferences() 方法获取到 SharedPreferences 实例。其中前者需要指定一个 SharedPreferences 的名称,后者则使用默认名称。
// 使用 Context 获取 SharedPreferences 实例
SharedPreferences sharedPreferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
// 使用 PreferenceManager 获取默认的 SharedPreferences 实例
SharedPreferences defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
一旦获取到 SharedPreferences 实例,我们就可以使用 SharedPreferences.Editor 来向它中写入数据了。每个 SharedPreferences 实例都有一个对应的 Editor 实例,用于进行写入操作。在写入数据之前,我们需要通过调用 SharedPreferences.edit() 方法来获取到 Editor 的实例。
SharedPreferences.Editor editor = sharedPreferences.edit();
向 SharedPreferences 中写入数据有多种方法,以下是一些常见的写入操作:
editor.putBoolean("is_logged_in", true);
editor.apply();
editor.putInt("user_id", 123);
editor.apply();
editor.putFloat("pi", 3.14f);
editor.apply();
editor.putString("username", "Alice");
editor.apply();
读取 SharedPreferences 中的数据也很简单。我们可以使用 SharedPreferences 的 get*() 方法来读取对应的值。需要注意的是,在读取某个 key 对应的值时,我们需要提供一个默认值,以防该 key 不存在时返回的是默认值而不是 null。
以下是一些使用 get*() 方法读取数据的示例:
boolean isLoggedIn = sharedPreferences.getBoolean("is_logged_in", false);
int userId = sharedPreferences.getInt("user_id", -1);
float pi = sharedPreferences.getFloat("pi", 0f);
String username = sharedPreferences.getString("username", "");
从 SharedPreferences 中删除某个 key 对应的数据,可以使用 SharedPreferences.Editor 的 remove() 方法。例如,要删除名为 "username" 的字符串数据,可以如下操作:
editor.remove("username");
editor.apply();
如果需要清空整个 SharedPreferences 文件中的数据,可以使用 SharedPreferences.Editor 的 clear() 方法。
editor.clear();
editor.apply();
SharedPreferences 是一个轻量级的数据存储方式,适合存储简单的数据类型,比如字符串、布尔值、整型、浮点型等。它使用 XML 文件作为存储介质,易于使用和维护。通过获取 SharedPreferences 实例、使用 SharedPreferences.Editor 进行写入、读取、删除和清空数据,我们可以实现对 SharedPreferences 文件的灵活管理。