有勇气的牛排博客
☰

安卓 应用级首选项 SharedPreferences

有勇气的牛排 1583 安卓 2021-10-16 23:36:12

知止自律打卡-微信小程序APP
一款微信自律打卡小程序,支持自定义打卡项目、习惯记录、项目日记、专注计时与数据统计。自律打卡、学习打卡、读书打卡、健身打卡、运动打卡、减肥打卡、戒色打卡、养生打卡、戒烟、戒酒、戒熬夜等多种场景。万能打卡模板自由创建。可自定义每日打卡目标,记录习惯连续天数,可视化追踪成长进度。
了解产品详情 →
微信搜索「知止自律打卡」
知止自律打卡微信小程序

1 介绍

无需权限,直接使用

Android 提供android.content.SharedPreferences接口,该接口提供允许您保存和检索内置数据类型的持久键 - 值对的框架。

共享首选项将信息存储在XML文件中,该文件位于Android设备的数据文件中,以应用包名称作为子文件夹,例如: 包名为 net.920vip.demo , 怎在系统文件夹/data/data/net.920vip.demo/shared_prefs/ 创建新的xml文件:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<map>
    <string name="prefrence1">Hi</string>
    <string name="prefrence2">Hello</string>
</map>

修改共享首选项,需要使用SharedPreferences.Editor

支持的数据类型有:

2 检索共享首选项

contains(String key):检查指定首选项是否安博涵特定首选项。参数指定要检查的首选项的名称(key)。

sharedPreferences1.contains("int")

getXXX(String key, xxx defValue):从首选项中检索指定数据类型的值(XXX指数据类型,如boolean、String、float)。此方法将要检索的首相项的名称(key)作为其第一个参数。第二个参数表示要返回的值。

3 导包

import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

4 写数据

// 创建应用级首选项
SharedPreferences sharedPreferences = getSharedPreferences("mySharedFile", MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();

// putXXX(String key, XXX value)  仅在调用commit()方法或者apply()方法时,值被写回
edit.putBoolean("bollean", false);
edit.putFloat("float", 10F);
edit.putInt("int", 6);
edit.putLong("long", 10L);
edit.putString("string", "10");

// 将来自编辑器的变更提交到SharedPreferences对象。此方法执行修改。如果连个编辑器在同时修改首选项,则最后一个调用commit()方法编辑器将反映最终值。
edit.commit();

5 读数据

// 获取首选项中的数据
System.out.println("获取首选项中的数据");
SharedPreferences sharedPreferences1 = getSharedPreferences("mySharedFile", MODE_PRIVATE);

boolean bollean1 = sharedPreferences1.getBoolean("boolean",false);
float float1 = sharedPreferences1.getFloat("float", 0f);
int int1 = sharedPreferences1.getInt("int", 0);
long long1 = sharedPreferences1.getLong("logn", 0L);
String string = sharedPreferences1.getString("string"," ");

System.out.println(bollean1);
System.out.println(float1);
System.out.println(int1);
System.out.println(long1);
System.out.println(string);

6 删除数据

edit.clear();              //清空文件的内容 如:退出登录
edit.remove("int");        // 根据key移除某一个信息
×
×