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

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


2.通过反射。将Person类中的属性取出来
我们先来測试一下属性有没有被取出来,我们在MainActivity.java中加入例如以下代码进行測试
我们来看一下Log打印的信息
我们能够看到,Person中的属性我们都已经拿到了

3.将对象存储到SharedPreferences中

4.将对象从SharedPreferences中取出来

5.我们来測试一下,改动MainAcitvity.java中的代码
我们看一下Log中打印的savedPerson的信息


Android通过反射打造能够存储不论什么对象的万能SharedPreferences的更多相关文章

  1. Android常用布局、文件存储与权限、XML

    常用的布局 LinearLayout Android 2.2开始fill_parent改名为match_parent ,从API Level为8开始我们可以直接用match_parent来代替fill ...

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

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38140505 自从Gallery被谷歌废弃以后,Google推荐使用ViewPa ...

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

    在Android中,数据的存储分为两种方式: 1.直接以文件的形式存储在目录中 2.以json格式存储在数据库中 将数据以文件的存储又分为两种方式: 1.生成.txt文件 2.生成xml文件 那么今天 ...

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

    Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览   作为一个完成的应用程序,数据存储操作是必不可少的. ...

  5. Android数据存储(1)少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...

  6. Android开发笔记之: 数据存储方式详解

    无论是神马平台,神马开发环境,神马软件程序,数据都是核心.对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用.总体的来讲,数据存储方式有三种:一个是文件,一个是数 ...

  7. Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  9. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

随机推荐

  1. 在树莓派3B上安装node.js

    本文主讲如何在树莓派3B上安装node.js 环境描述1. 树莓派安装了`2016-11-25-raspbian-jessie-lite`(PS:在此版本的镜像中,默认禁用了ssh,在烧录好镜像之后, ...

  2. 2017/11/22 Leetcode 日记

    2017/11/22 Leetcode 日记 136. Single Number Given an array of integers, every element appears twice ex ...

  3. Redis学习篇(五)之Set类型及其操作

    SADD 作用:向集合中添加元素 语法:SADD key menber [, ...] 添加重复的元素会返回0,失败 SMEMBERS 作用:返回指定集合中的元素 语法: SMEMBERS key S ...

  4. 【WIN10】Storyboard動畫板

    源碼下載:http://yunpan.cn/cFJR5zcMNtBq6  访问密码 ac7a 使用Storyboard可以實現動畫效果. 1.仿照WINDOWS系統安裝時的等待畫面,不停更換背景顏色 ...

  5. POJ 2185 kmp

    题目链接:http://poj.org/problem?id=2185 题意:给出一个R*C(10000 * 75)的矩形字符串,然你求最小的不严格重复矩阵,比如,ABA,最小的重复矩阵是AB,经过复 ...

  6. 加密url

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 可以采用 https 证书 双向 加密验证. 加密到 JNI 里面,还是可以通过抓包工具 ...

  7. Wannafly挑战赛17 B

    题解 大概就是求证这个 \[\sum_i^nC_{n}^i*C_n^i = C_{2n}^n\] 证明: \[(1+x)^{2n} = [C(0,n)+C(1,n)*x+...+C(n,n)*x^n] ...

  8. 常用数据库validationQuery检查语句

    数据库 validationQuery Oracle select 1 from dual DB2 select 1 from sysibm.sysdummy1  mysql select 1  mi ...

  9. VK Cup 2016 - Qualification Round 2 B. Making Genome in Berland 水题

    B. Making Genome in Berland 题目连接: http://www.codeforces.com/contest/638/problem/B Description Berlan ...

  10. c语言把mysql数据库语句和变量封装为一个语句

    我有一个语句 sql = "insert into talbe_name  values(name,age)"  其中name和age两个变量根据外面的输入来确定,有两种方法 1: ...