<Android基础> (六) 数据存储 Part 2 SharedPreferences方式
6.3 SharedPreferences存储
SharedPreferences使用键值对的方式来存储数据。同时支持多种不同的数据类型。
6.3.1 将数据存储到SharedPreferences中
得到SharedPreferces对象的三种方式:
1.Context类中的getSharedPreferences()方法
接收两个参数,第一个为用于指定SharedPreferences文件的名称,指定文件不存在则会创建一个。
第二个用于制定操作模式,MODE_PRIVATE。
2.Activity类中的getPreferences()方法
只接收操作模式,会自动将当前类名作为SharedPreferences的文件名
3.PreferenceManager类中的getDefaultSharedPrefences()方法
静态方法,接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件,得到了SharedPreferences对象之后,开始向SharedPrefences文件中存储数据,分为3步:
a.调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象
b.向SharedPreferences.Editor对象中添加数据,putString(),putInt(),putBoolean()......
c.调用apply()方法将添加的数据提交,完成操作
新建项目SharedPreferencesTest项目
添加一个Button
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"> <Button
android:id="@+id/save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save"/> </LinearLayout>
修改MainActivity中的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.save);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("data",
MODE_PRIVATE).edit();
editor.putString("name", "WenWen");
editor.putInt("age", 18);
editor.putBoolean("married", false);
editor.apply();
}
});
}
用part 1中同样的方法将data保存到电脑中并查看
以xml格式来进行管理数据

6.3.2 从SharedPreferences中读取数据
SharePreferences对象中提供了一系列的get方法,get方法接收两个参数,第一个为键,第二个为默认参数,即找不到对应的键值返回的默认值
界面中加个Button用于读取数据
<Button
android:id="@+id/resotre_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Restore data"/>
修改MainActivity中的代码
Button restoreData = (Button)findViewById(R.id.resotre_data);
restoreData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE);
String name = pref.getString("name","");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "age is " + age);
Log.d("MainActivity", "marride is " + married);
}
});
运行程序:

<Android基础> (六) 数据存储 Part 2 SharedPreferences方式的更多相关文章
- <Android基础> (六) 数据存储 Part 1 文件存储方式
第六章 数据存储 6.1 持久化技术 持久化技术指将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 主要有三种方式用于简单地实现数据持久化功能:文件存储.S ...
- <Android基础> (六) 数据存储 Part 3 SQLite数据库存储
6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...
- Android 数据存储01之SharedPreferences
Android 数据存储01之SharedPreferences 版本 修改内容 日期 修改人 V1.0 原始版本 2013/2/20 skywang 1 SharedPreferences概括 Sh ...
- Android Learning:数据存储方案归纳与总结
前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...
- Android中的数据存储
Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- android下的数据存储
android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...
- Android五种数据存储方式
android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...
随机推荐
- bootstrap tooltips在 angularJS中的使用
使用bootstrap自带的提示控件,省去了不少事情 <div class="s2" ng-init="InitTooltip()"> <in ...
- hash一致性
参照:https://www.cnblogs.com/moonandstar08/p/5405991.html 参照:http://www.cnblogs.com/haippy/archive/201 ...
- 如何删除织梦系统power by dedecms
很多织梦系统底部会自带power by dedecms,这个power by dedecms是什么意思呢?这个power by 是织梦系统版权信息,但是织梦系统是开源免费的,所以今天小编就和大家说说如 ...
- 2D射影几何和变换
阅读<计算机视觉中的多视图集合> 2D射影几何和变换 2D射影平面 本章的关键是理解线和点的对偶性.从射影平面模型出发,IP^2^内的点(a, b ,c)由IP^3^空间中一条过原点的射线 ...
- android中使用afinal一行源码显示网络图片
下面代码是关于android中使用afinal一行显示网络图片的代码. public class DemoActivity extends FinalActivity { @Override publ ...
- 工具资源系列之给虚拟机装个windows
前面我们介绍了如何在 mac 宿主机安装 VMware 虚拟机软件,本节我们将继续介绍如何给虚拟机安装镜像,切换不同的操作系统. VMware 软件是容器,镜像是内核,这里的镜像指的是操作系统. 下载 ...
- Scrum笔记
Scrum的笔记,需要的童鞋拿去,有错漏处请指正,谢谢. 出处:https://www.cnblogs.com/Ryu666/p/9890609.html
- 20181219-PostgreSQL 流复制监控脚本
PostgreSQL 流复制监控脚本 https://github.com/AndyYHM/Writing/blob/PostgreSQL/20181219-PostgreSQL%20Stream%2 ...
- C# -- 使用 Task 执行多线程任务
C# -- 使用 Task 执行多线程任务 1. 使用 Task 执行多线程任务 class Program { static void Main(string[] args) { Task task ...
- LVM 磁盘分区扩容
前提:将磁盘中未分区磁盘进行分区操作 https://www.cnblogs.com/guoxiangyue/p/10033367.html 然后进行vg扩容 pvcreate /dev/sdc lv ...