Android通过反射打造可以存储任何对象的万能SharedPreferences

我们通常使用SharedPreferences存储一些需要保存在本地,但又不至于存储在数据库里的一些数据,一般我们用它来存储一些用户名,密码等数据是非常方便的,那么如果我们想要存储的信息有10几条,我们就得写10几行重复的代码把他们存进去,取出来的时候还得写10几行代码将他们一条一条取出来,那么有没有什么办法可以只需要一行代码就可以将他们存进去,一行代码就将他们取出来?答案是有的,这篇文章我们就介绍如何通过反射来实现。

1.将我们想要保存的数据封装成一个实体类 Person.java 其中属性我们都用Public来修饰

2.通过反射,将Person类中的属性取出来

我们先来测试一下属性有没有被取出来,我们在MainActivity.java中添加如下代码进行测试

我们来看一下Log打印的信息

我们可以看到,Person中的属性我们都已经拿到了

3.将对象存储到SharedPreferences中

4.将对象从SharedPreferences中取出来

5.我们来测试一下,修改MainAcitvity.java中的代码

我们看一下Log中打印的savedPerson的信息

源码下载

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-28 20:12:08

Android通过反射打造可以存储任何对象的万能SharedPreferences的相关文章

Android通过反射打造能够存储不论什么对象的万能SharedPreferences

我们通常使用SharedPreferences存储一些须要保存在本地.但又不至于存储在数据库里的一些数据.一般我们用它来存储一些username,password等数据是很方便的,那么假设我们想要存储的信息有10几条.我们就得写10几行反复的代码把他们存进去.取出来的时候还得写10几行代码将他们一条一条取出来,那么有没有什么办法能够仅仅须要一行代码就能够将他们存进去,一行代码就将他们取出来?答案是有的,这篇文章我们就介绍怎样通过反射来实现. 1.将我们想要保存的数据封装成一个实体类 Person

【Android基础】Android SQLite存储自定义对象

Android SQLite存储自定义对象 在SQLite数据库中可存储的数据类型有NULL.INTEGER.REAL(浮点型).TEXT.BOOL,一共是五种数据类型.在Android开发中,我们存储数据的一般的作法是数据库的属性就是类的成员变量,比如: 要存储一个人的姓名和年龄,在类中的是将它们定义为两个成员变量 class Person{ private String name; private int age; } 数据库中是将它们存储为两个字段 - name TEXT - age IN

Android 高质量开发之存储优化

数据的交互及存储是任何开发都绕不过的事情,Android平台涉及数据存储有:SharedPreferences存储数据.文件存储数据.SQLite数据库存储数据.使用ContentProvider存储数据.网络存储数据 一.引言 Android 提供了很多种持久化存储的方案,存储就是把特定的数据结构转化成可以被记录和还原的格式,这个数据格式可以是二进制的,也可以是 XML.JSON.Protocol Buffer 这些格式.既然有那么多存储的方案,那我们在选择数据存储方法时,一般需要考虑哪些关键

Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38140505 自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gallery的效果,但是HorizontalScrollView存在一个很大的问题,如果你仅是用来展示少量的图片,应该是没问题的,但是如果我希望HorizontalScr

Android开发-之数据的存储方式一

在Android中,数据的存储分为两种方式: 1.直接以文件的形式存储在目录中 2.以json格式存储在数据库中 将数据以文件的存储又分为两种方式: 1.生成.txt文件 2.生成xml文件 那么今天就来详细的说一下以文件的形式存储,由于没有讲到数据库,在之后的课程中会讲到json格式存储在数据库中. 一.生成.txt文件 文件的生成无非就是我们Java中学习的输入输出流中的一部分,有Java基础相信都是很容易理解的,因为它真的很简单啦~~ 1.生成目录可以分为两种: 1)本机 2)SD卡 2.

[转][Android]Android数据的四种存储方式

android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuilder public class SQLiteQueryBuilderextends Object This is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects. 构造方法摘要

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Pro

Android数据的四种存储方式之SharedPreferences

除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/< >/shared_prefs目录下.SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现.实现SharedPreferences存储的步骤如下: 一.根据Context获取SharedPreferences对象 二.利用edi

Android数据的四种存储方式

很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider. SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用