安卓 偏好设置存储 List集合

Android 保存List数据(SharedPreferences) 博客已转移 一、简介 存储List数据到本地的方式有很多种,对于不想用sqlite或者其他方式,又或是数据量很少的话,不妨可以试下用 SharedPreferences保存。由于SharedPreferences只能保存Map型的数据,必须要做其他转换才行。 二、应用场景 用于保存各种List数据,最常见的莫过于,ListView、Gr... 阅读详情

安卓 存储集合list

首先我遇到的问题是 首页现在图标和问题,没有网络时候就空了, 所以才加这个 缓存方法,
不说多话,第一步 新建工具类 如下:

import android.content.SharedPreferences;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tecocity.app.view.main.bean.MianPicUrlBean;

import java.util.List;

public class SharedPreferencesUtils {

    private static SharedPreferences preferences;
    private static SharedPreferences.Editor editor;

    public static void setPreferences(SharedPreferences preferences) {
        SharedPreferencesUtils.preferences = preferences;
    }

    /**
     * 保存List以及在SP中的key-->className
     * @param className
     * @param datalist
     */
    public static void setDataList(String className, List<MianPicUrlBean.DataList> datalist) {
        if (null == datalist || datalist.size() <= 0)
            return;

        Gson gson = new Gson();
        //转换成json数据,再保存
        editor = preferences.edit();
        String Json = gson.toJson(datalist);
        editor.putString(className, Json);
        editor.commit();
    }

    /**
     * 获取List
     *
     * @param className
     * @return
     */
    public static List<MianPicUrlBean.DataList> getDataList(String className) {
        List<MianPicUrlBean.DataList> datalist;
        String Json = preferences.getString(className, null);
        if (null == Json) {
            return null;
        }
        Gson gson = new Gson();
        datalist = gson.fromJson(Json, new TypeToken<List<MianPicUrlBean.DataList>>() {}.getType());
        return datalist;
    }

第二步 开始调用 首先存储方法:

 SharedPreferences preferences = mContext.getSharedPreferences("MainPic", Context.MODE_PRIVATE);
                        SharedPreferencesUtils.setPreferences(preferences);
                        SharedPreferencesUtils.setDataList("MainPic",dataListsMainPics);

然后 获取数据方法:

   dataListsMainPics.clear();

            SharedPreferences preferences = mContext.getSharedPreferences("MainPic", Context.MODE_PRIVATE);
            SharedPreferencesUtils.setPreferences(preferences);

            dataListsMainPics = SharedPreferencesUtils.getDataList("MainPic");

            if(dataListsMainPics==null){
                Log.d("info","图片存储的结集合是== NULL 空");
            }else{
                Log.d("info","图片存储的结集合是=="+dataListsMainPics.size()+"  "+dataListsMainPics);
                adapter.addAll(dataListsMainPics);
            }

OK ,以上就是方法了, 哦,对顺便复制我的 图片加载方法吧 Glide的 ,如下:

 Glide.with(mContext)
                        .load(data.getNewImgUrl())
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .crossFade()
                        .error(R.mipmap.pic_zhan_hui)
                        .into(iv_pic);

希望有所帮助!

Android 10 AppOpsManager深度解析:权限系统的后台管控与实战应用 在Android开发中,权限管理是保障用户隐私与系统安全的核心机制。其原理基于权限声明与运行时动态检查的双层模型,通过系统服务对敏感资源访问进行管控。这一机制的技术价值在于,它在标准权限模型之上,提供了更细粒度的操作级控制能力,从而实现对应用行为的精准约束,尤其在隐私保护要求日益严格的移动生态中至关重要。其典型应用场景包括后台位置访问控制、存储权限精细化管理和企业设备策略实施等。本文聚焦Android 10引入的关键变更,深入剖析AppOpsManager这一系统级“后台管理员”的运作机制,并结合ADB命令 阅读详情

相关推荐

拼多多Android面试题及参考答案

Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。

大模型大数据攻城狮的专栏 1284

安卓开发,如何本地存储数组List或ArrayList

方法就是用Gson转成json格式再转回来的操作 首先是存,以最简单的List为例 List<String> list= new List<String>(); Gson gson = new Gson(); String str = gson.toJson(list); MMKVUtils.put("items", str);//用Sp或者sqlit也一样,反正已经变成json格式的一串字符串了 取 Gson gson = new Gson(); Type type

weixin_45920642的博客 2832

Android中使用SharedPreferences保存List数据的实用技巧与实战

Android SDK内置了org.json包,提供了核心类用于构建和解析JSON数据,主要包括:JSONArray:表示一个JSON数组,可用于存储有序的值集合。JSONObject:表示一个JSON对象,键值对结构,对应Java中的Map或POJO。:当JSON格式错误或操作非法时抛出的异常。这些类无需添加任何外部依赖即可使用,适合中小型项目或对APK体积敏感的应用场景。以下是一个典型的JSONArray使用示例:// 创建JSONArray并添加元素。

weixin_35433448的博客 1218

android 存储一个list,Android,一个函数实现本地数据存储(包括List)

1,存储String单个字符串参数说明1, Context(这个不多说)参数说明2,String(需要存储的String字符串)参数说明3,String(需要存储模块的名称,例如用户模块,商户模块,等等,可以自己分)参数说明4,String(存储模块下的名称,例如用户模块下的用户id,用户name)LocalDataUtil.getIns(Context)._save_string(String,...

weixin_34049581的博客 731

嵌入式下载故障排查:ST-LINK与GD32 Programmer典型问题解决

嵌入式固件烧录是MCU开发的关键环节,其本质依赖于调试器(如ST-LINK、GD-Link)与目标芯片间的协议通信、驱动加载及硬件接口协同。原理上,SWD/JTAG协议需在正确时序、电平与供电条件下完成设备枚举、ID读取与Flash编程;技术价值在于保障量产烧录稳定性与调试可重复性;典型应用场景涵盖STM32/GD32教学开发、工业控制板量产调试及Windows 11新系统适配。本文聚焦ST-LINK-V2在Keil MDK中的下载失败和GD32 All In One Programmer的DLL加载异常两

weixin_35006125的博客 153

带隙基准电路实战:温度补偿与流片调优全解析

带隙基准(BGR)是模拟芯片中实现高精度、低温漂电压参考的核心电路,其本质是利用硅材料禁带宽度的物理稳定性,通过PTAT(正温度系数)与CTAT(负温度系数)电压的加权叠加抵消温度影响。原理上需兼顾一阶线性补偿与二阶曲率校正,技术价值在于支撑ADC/DAC/LDO等关键模块的精度与可靠性。典型应用场景涵盖车规级MCU、工业传感器和高精度电源管理芯片。工程落地难点集中于工艺偏差、运放失调、寄生效应及版图热电耦合——这正是‘带隙基准设计’与‘带隙基准调优’的根本分野。本文聚焦真实流片经验,深入拆解Widlar架

weixin_42628280的博客 254

android 如何保存一个list数据,android 使用SharedPreferences保存list数据

List> list = new ArrayList>();List> test = getInfo(this, "name");for (int i = 0; i < test.size(); i++) {Map itemMap = test.get(i);Iterator> iterator = itemMap.entrySet().iterator();whil...

weixin_35881820的博客 508

在摩尔线程 MTT S80 上使用 Ollama 进行 DeepSeek R1 蒸馏版模型推理

本文主要介绍了如何在摩尔线程 MTT S80 上通过 Ollama 快速完成DeepSeek R1 蒸馏系列模型的推理。

摩尔线程blog中心 3599

Android 持久化数组(List/ArrayList)方法---MMKV

说明: 1、我是从iOS转Android开发 现在应该是两个多月了吧 Android、iOS来回搞还好点 要是Android一段时间没去编码 那么感觉忘记挺快 第一篇Android文章记录一下 2、轻量级的持久化保存我iOS最开始是使用NSUserDefault,但是这个系统持久化存储方法用的多了就会知道不好用,除了读写速度慢有时候好像还会丢,Android的SharedPreferences似乎也不太好用。在一次偶然的情况下,发现微信使用的持久化存储框架MMKV,这个用起来感觉就很舒服。And...

iOS野狼的专栏 4640

ArcGIS实战:手把手教你用DEM和灾害点数据,5步搞定地质灾害风险区划图

本文详细介绍了使用ArcGIS进行地质灾害风险评估的完整流程,从DEM和灾害点数据出发,通过五步标准化操作生成专业风险区划图。重点讲解了信息量模型的应用,帮助读者掌握GIS技术在地质灾害易发性评价中的实践方法,提升风险评估效率与准确性。

weixin_30696427的博客 426

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

Android采用SharedPreferences保存用户偏好设置参数

前段时间傻乎乎的用sqllite来保存用户的记住密码,用sqlite是可以保存,但当时用时就感觉怪怪的,那时候还不知道SharedPreferences,我们在网頁上的话,一般都是用cookies来保存的,Android的话应该用这个来保存的比较多。我的个人感觉SharedPreferences要比我之前那个要好的多了。 MainActivity.java public class

蔡斌松的专栏 1337

双翌视觉系统配合机械手大视野定位案例(单目标带角度抓取)

一、定位原理概述 1.系统构架 视觉定位系统采用正向打光方式,光源在机械手上方,CCD从上往下拍摄,进行图像分析定位。相机将计算出的像素坐标转换为机械手的物理坐标,视觉软件与机械手进行网口通讯,将视野内物料的物理坐标发送给机械手,机械手抓取物料放在指定工位。 2.相机标定概述 系统采用宫格标定确定像素坐标和物理坐标一一对应关系,同时利用3点或者多点旋转标定求出旋转中心 系统采用宫格标定,自定义行列数和间距及旋转角度,通过机械手发送的当...

weixin_51554164的博客 2172

SharedPreferences存储List和相互转化

SharedPreferences存储List和相互转化

TianciZhu的博客 267

立体仓库WCS控制系统-AGV通信代码

string str = "任务下发,WCS->NT8000(q-Message),ikey:" + p.ikey.ToString() + "fromStation:" + p.fromStation.ToString() + "toStation:" + p.toStation.ToString();if (nt8000.Connect(_ServerAddr, _ServerPort)) QueueSpeech.AddQueue(string.Format("与NT8000重连成功"));

xdpcxq的专栏 2203

FAA机载电子硬件审查指南详解(评审和审查必备)

本咨询通告旨在协助认证机构、授权代表(包括组织授权)和申请人执行机载电子硬件评审(以下简称"硬件评审")。硬件评审的目的是评估机载电子硬件是否符合适航要求和建议的符合性方法(即RTCA/DO-254)。本工作辅助文件应作为评审过程中的参考工具使用。它不应被用作检查表,也不包含所有可能需要评审的情况。同样,本工作辅助文件也不是用来替代DO-254,而应与DO-254一起使用。此外,本工作辅助文件可能包含一些不适用于特定项目评估的问题。

qq_41854911的博客 610

Andrfoid SharedPreferences 偏好设置 保存list集合对象 commit和apply区别

1.字符的数组和数字的数组 2.设置第一次没有进入时候的值===默认值 3.数组中的直接翻译和…………entry和entryvalues代表的值 1.在xml中碰到转义字符 2.碰到int类型的数据 应用 1.天气预报 2.语音 3.行车记录仪 4.canbus 1.有界面和无界面的偏好设置(语音)

深南大盗的博客 846

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Mapster 映射值设置实战:计算值、目标值转换与运行时参数传递

Mapster 作为一款基于表达式树编译的对象映射库,除了按名称自动匹配成员外,还提供了三组"值设置"能力:通过 `Map` 方法为单个目标成员注入自定义计算逻辑,通过 `AddDestinationTransform` 对某一类型的所有目标值做统一转换,以及通过 `MapContext.Current.Parameters` 在映射时传入当前用户等运行时上下文。读完本文,你将掌握如何在 `Typ

gitblog_00442的博客 1052

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

sharedpreferences保存List集合

存 List&lt;MyRecords&gt; listDate=new ArrayList&lt;MyRecords&gt;(); MyRecords myRecords=new MyRecords(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(date *...

qq_孤小狼的博客 700

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android安全存储利器Hawk:AES加密键值对存储库原理与实践

在Android应用开发中,数据持久化是基础且关键的技术环节,它确保了应用状态和用户数据的长期保存。其核心原理是通过本地存储机制,将内存中的数据结构序列化后写入设备存储介质。从技术价值看,安全高效的数据持久化能提升应用稳定性、保护用户隐私并优化用户体验。在移动开发领域,涉及用户凭证、应用配置等敏感信息的存储时,对安全性的要求尤为突出。传统的SharedPreferences虽然API简单,但以明文存储,存在安全风险;而直接使用SQLite数据库处理简单键值对又显得过于繁重。此时,专注于提供安全、轻量级键值对

354

Android数据存储方案全解析:从基础到高级实践

数据存储是移动应用开发的核心技术之一,Android系统提供了多样化的存储机制以满足不同场景需求。从技术原理上看,Android存储体系基于Linux文件系统实现,通过沙箱机制保障应用数据安全。开发者常用的关键技术包括SharedPreferences键值存储、Room数据库以及文件系统API,这些方案在数据安全性、访问效率和存储容量上各有特点。随着Android 10引入分区存储(Scoped Storage)机制,存储访问模式发生了重大变革,开发者需要掌握MediaStore API和存储访问框架(SA

weixin_33979203的博客 310

Universal Android Debloater:基于Rust与ADB的安卓系统深度清理技术架构解析

Universal Android Debloater(UAD)是一款采用Rust语言开发的跨平台图形界面工具,通过ADB(Android调试桥)协议实现对非Root安卓设备的系统级应用管理。该项目通过内存安全的Rust架构、高效的ADB通信机制和智能化的应用分类系统,为技术用户提供了对安卓生态系统的深度控制能力。 ## 架构设计与技术实现深度剖析 ### Rust内存安全架构与跨平台实现

gitblog_00981的博客 616

EMQX CRL 缓存刷新失败自动驱逐机制:从日志刷屏到优雅降级

本文围绕 EMQX 仓库中的变更记录 [changes/ee/fix-15159.en.md](https://link.gitcode.com/i/715b229965c4d25f53526a78c1bebb55) 展开:当某个 CRL(证书吊销列表,Certificate Revocation List)分发点(CDP,CRL Distribution Point)URL 在连续一段时间内(默

gitblog_00188的博客 805

终极Android缓存方案:Reservoir让数据持久化变得简单

Reservoir是一款专为Android开发打造的轻量级数据缓存库,它能够帮助开发者轻松实现对象的序列化与磁盘持久化存储,通过简单的键值对操作即可完成复杂的数据缓存需求。无论是频繁访问的用户数据还是网络请求结果,Reservoir都能提供高效可靠的本地存储解决方案,让Android应用的数据管理变得前所未有的简单。 ## 🚀 快速上手:Reservoir核心功能解析 ### 一键初始化:3

gitblog_00726的博客 905

Unity数据存储方案全解析:从PlayerPrefs到SQLite的工程化选型指南

数据持久化是软件开发中的基础概念,指将程序运行时的数据状态保存到非易失性存储介质中,确保应用关闭后数据不丢失。其核心原理是通过序列化将内存中的对象转换为可存储的格式(如二进制、文本或数据库记录),再通过IO操作写入磁盘。这一技术对于保障用户体验和数据连续性至关重要,尤其在游戏开发领域,它直接关系到存档安全、配置管理和性能表现。在Unity引擎中,开发者常面临多种数据存储方案的选择,其中PlayerPrefs因其简单易用而被广泛认知,但它仅适用于存储极简的偏好设置。对于更复杂的应用场景,如需要管理大量静态配置

weixin_33937778的博客 391

【无标题】

Set的使用场景:无序集合:当你只关心元素的存在与否,而不关心它们的顺序时,Set是一个好的选择。例如,在一个程序中,如果你需要存储一组唯一的标识符,并且不关心它们的顺序,那么Set是合适的。总结来说,如果你关心元素的顺序和重复性,并且需要频繁访问元素,那么List可能是更好的选择。Set(集合):Set 集合中的元素是无序的,且不能包含重复的元素。请注意,虽然TreeSet和TreeMap也保证了元素的排序,但它们是根据元素的自然顺序或自定义比较器进行排序,而不是按照元素的添加顺序。

sinat_42356311的博客 526
上一篇: 安卓 Flutter AndroidStudio的配置
下一篇: 安卓 前台服务 通知
mawlAndroid
博客等级 码龄10年 5粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值