android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测
2014-04-24 09:11
525 查看
我们在设计软件的时候,需要记录软件设置的基本信息,那么怎么来保存他们呢?我们可以使用SharedPreferences。
SharedPreferences是一个xml文件,用来存储软件的常规设置。例如:登陆框的用户名或用户自己的设置信息。
SharedPreferences自动保存在data/data/package/shared_prefs目录下面。
效果图
userInfo.xml便是我们设置的保存的文件。文件名称可以自己指定。
那么怎么实现呢?下面我们一步一步来说:
第一步:创建SharedPreferences:
android为我们提供了或的方法,这个方法在有文件时,返回SharedPreferences对象,没有是在创建editor 后执行Editor.commit()是创建。
原文: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()).
代码1:
解释:getSharedPreferences第一个参数userInfo为文件名称,得到的就是userInfo.xml,可以自己起名。
第二个参数Activity.MODE_PRIVATE,是Activity创建文件时的权限,这里是私有的
权限大全:
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:
添加完之后,我们打开文件可以看到存储的值。文件存储在data/data/package/shared_prefs下面, 如果你还不知道怎么查看本地手机文件请看这个android开发之-查看、编辑手机sqlite数据库文件-实测。
第三步:获得SharedPreferences 中的值,显示在手机中。
作为一个android初学者,第一次开博,错误之处难免,请大家多多包含,指教。
SharedPreferences是一个xml文件,用来存储软件的常规设置。例如:登陆框的用户名或用户自己的设置信息。
SharedPreferences自动保存在data/data/package/shared_prefs目录下面。
效果图
userInfo.xml便是我们设置的保存的文件。文件名称可以自己指定。
那么怎么实现呢?下面我们一步一步来说:
第一步:创建SharedPreferences:
android为我们提供了或的方法,这个方法在有文件时,返回SharedPreferences对象,没有是在创建editor 后执行Editor.commit()是创建。
原文: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()).
代码1:
SharedPreferences preferences = getSharedPreferences("userInfo",Activity.MODE_PRIVATE);
解释:getSharedPreferences第一个参数userInfo为文件名称,得到的就是userInfo.xml,可以自己起名。
第二个参数Activity.MODE_PRIVATE,是Activity创建文件时的权限,这里是私有的
权限大全:
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开发之使用Preferences设计软件设置界面(源代码分享)
- Android之项目推荐使用的第三方库,有助于快速开发,欢迎各位网友补充
- Android开发之ImageSwitcher组件的使用以及设置图片切换的效果
- Gson的详细使用(android必备,快速提高开发效率)
- Android游戏开发12:使用SharedPreference与FileInputStream/FileOutputStream保存数据
- 快速开发android应用5-使用picasso实现轮播图
- Android之使用RatingBar设置游戏难度并保存
- 使用VTEditor软件快速开发网站系列教程七 自定义页面篇
- 用SugarORM快速开发需要同步和保存大量数据的Android互联网客户端
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- 我的Android笔记(十一)——使用Preference保存设置
- Android 使用Properties文件保存软件配置信息
- Android使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android开发软件的下载及设置
- Android快速开发之appBase——(5).BasePresenter的使用
- 使用CodeSmith快速规范开发.Net软件
- 使用ThinkAndroid快速开发框架需要有以下权限
- android快速开发工具SelectorChapek安装使用教程
- [ 转]Android快速开发–使用ORMLite操作数据库