android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测


效果图
- 原文:
- Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
SharedPreferences preferences = getSharedPreferences("userInfo",Activity.MODE_PRIVATE);
解释:getSharedPreferences第一个参数userInfo为文件名称,得到的就是userInfo.xml,可以自己起名。
Context.MODE_PRIVATE = 0x0000
Context.MODE_WORLD_READABLE = 0x0001
Context.MODE_WORLD_WRITEABLE = 0x0002
Context.MODE_APPEND = 0x8000
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入:
openFileOutput("leigo.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
第二步:初始化添加数据:
代码2:
//获得编辑器信息,这个编辑器想一个map,它是以key-values形式存在的。
SharedPreferences.Editor edit=preferences.edit();
//将值添加到编辑器中
edit.putBoolean("isSendMsg", isSendMsg.isChecked());
edit.putBoolean("isCall", isCall.isChecked());
edit.commit();//注意在没有preferences的时候这里进行创建。
添加完之后,我们打开文件可以看到存储的值。文件存储在data/data/package/shared_prefs下面, 如果你还不知道怎么查看本地手机文件请看这个android开发之-查看、编辑手机sqlite数据库文件-实测。

第三步:获得SharedPreferences 中的值,显示在手机中。
SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);
//获得两个控件,用以展示。
isSendMsg = (Switch) findViewById(R.id.isSendMessage);
isCall = (Switch) findViewById(R.id.isCall);
//将 preferences.getBoolean("isSendMsg", true)信息取出来,赋值给控件,getBoolean的第二个参数是,如果preferences中没有这个值默认的设置的值。
isSendMsg.setChecked(preferences.getBoolean("isSendMsg", true));
isCall.setChecked(preferences.getBoolean("isCall", false));
好了,至此我们就学习完了怎么使用SharedPreferences了,另外应该注意在退出程序的时候记得保存信息,一般在onStop()方法中使用
@Override
protected void onStop() {
super.onStop();
//停止的时候自动保存信息
SharedPreferences preferences=getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);
SharedPreferences.Editor edit=preferences.edit();
edit.putBoolean("isSendMsg", isSendMsg.isChecked());
edit.putBoolean("isCall", isCall.isChecked());
edit.commit();
}
作为一个android初学者,第一次开博,错误之处难免,请大家多多包含,指教。
android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测的更多相关文章
- Android开发常用权限设置
加在AndroidManifest.xml 文件中manifest标签以内,application以外 例如:<!--网络权限 --> <uses-permission androi ...
- Android开发——支付宝和微信支付快速接入流程
一.Android快速实现支付宝支付 1.首先,我们需要前往支付宝开放平台,申请我们的支付功能:https://open.alipay.com/platform/home.htm 支付宝首页 这里 有 ...
- Android开发之字体设置
默认字体 Android SDK自带了四种字体:"normal"“monospace",“sans”, “serif”,如下: 字体 看这四兄弟长的还是蛮像,我是看不 ...
- Android开发之动态设置字体的样式和粗细
字体设置通常有两种形式: 1:在xml中直接设置 android:textStyle="bold" android:typeface="sans" 2:用jav ...
- Android开发——Toolbar常用设置
本篇笔记用来记录常用的Toolbar设置,如Toolbar颜色设置,显示返回按钮,显示右边三个点按钮 之前Android 使用的ActionBar,Android5.0开始,谷歌官方推荐使用Toolb ...
- android开发之当设置textview多少字后以省略号显示。限制TextView的字数
设置多少字后以省略号显示 <TextView android:id="@+id/tv" android:layout_width="wrap_conten ...
- Android(java)学习笔记163:Android开发时候颜色设置是bgr不是rgb
eb" android:background ="#"
- Android开发使用软件
开发环境搭建顺序: 1.安装开发工具 1).安装java 2).安装as 3).安装myeclipse 4).安装np++ md 5).安装svn git 2.配置环境变量 1).配置java jav ...
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
== 0) { convertView.setBackgroundResource(R.drawable.list_gray_9); } else { convertView.setBackgroun ...
随机推荐
- GridControl 设置自带选中复选框及设置该列列头名称
2.设置该列标题,设置事件CustomDrawColumnHeader 效果图:
- BZOJ ac100题存档
不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...
- 深入了解Unity中LineRenderer与TrailRenderer
LineRender和TrailRender是两个好东西,很多Unity拖尾特效都会使用到它们.一些简单的介绍可以参见官方的API文档.在这里探讨一下它们具体的渲染方式,而后给出一些Shader以便更 ...
- 基于vue2.0+vuex+localStorage开发的本地记事本
本文采用vue2.0+vuex+localStorage+sass+webpack,实现一个本地存储的记事本.兼容PC端和移动端.在线预览地址:DEMO github地址:https://github ...
- HTML中鼠标移动过去变换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- TokuDB性能测试报告
一 .背景介绍 近年来,TokuDB作为MySQL的大数据(Big Data)存储引擎受到人们的普遍关注.其架构的核心基于一种新的叫做分形树(Fractal Trees)的索引数据结构,该结构是缓存无 ...
- Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)
前言: 正文: 1.安装必要依赖包: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev l ...
- 巧用*_his表记录操作历史
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 许多OLTP应用的开发者都知道,一些重要的操作要记录操作历史,把操作前的数据备份到历史表,然后再执行相应的修改操作.这样可以获取某个 ...
- 学习HTML5一周的收获1
HTML5的基本结构 学习了title标签(显示网站名称),link标签(链接文件,可做网页美化) 快捷键:Ctrl+/ 注释 学习[meta标签] 1.charset属性:单独使用,设置文档字符集编 ...
- node c++多线程插件 第二天 c++指针
虽然取名叫node多线程插件,但是目前还是在学习c++的情况. 今天谈一谈c++指针. c++指针就像是c#中的引用变量,例如一个Person类的实例zs{Name="张三",Ag ...