jp1017

jp1017

0个粉丝

78

问答

0

专栏

9

资料

jp1017  发布于  2015-08-04 20:13:23
采纳率 0%
78个问答
3999

安卓使用SharedPreferences类存储软件参数设置

        在开发软件的时候,我们需要给用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,window下通常我们会采用ini文件。如果是J2EE下面,我们会采用properties属性文件或者xml进行保存。

        那么,我们在Android应用中又适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,这是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数,比如boolean,int,float,long,String等数据.使用SharedPreferences类保存数据,其实质是采用了xml文件存放数据,路径为:/data/data//shared_prefs。

        获取SharedPreferences的两种方式:
        1、调用Context对象的getSharedPreferences()方法
        2、调用Activity对象的getPreferences()方法

        两种方式的区别:
        调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
        调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

        SharedPreferences的四种操作模式:
        Context.MODE_PRIVATE
        Context.MODE_APPEND
        Context.MODE_WORLD_READABLE
        Context.MODE_WORLD_WRITEABLE

        Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
        Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
        Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
        MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
        MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

        下面是两种基本用法:
        1:将数据保存至SharedPreferences:
        SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
        SharedPreferences .Editor editor=preferences.edit();
        String name="ebaina";
        String age="100";
        editor.putString("name", name);
        editor.putString("age", age);
        editor.commit();//数据的提交

        2:从SharedPreferences获取数据:
        SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
        String name=preferences.getString("name", "defaultname");
        String age=preferences.getString("age", "0");

        下面这个是我看视频写的一个例子:附件:SharedPreference.zip

易百纳技术社区文件: SharedPreference.zip
下载
我来回答
回答3个
时间排序
认可量排序

fox-cool

0个粉丝

9

问答

0

专栏

0

资料

fox-cool 2015-08-05 10:15:40
认可0
这个要支持。你还可以研究下sqlite 这个在android下的轻量级数据库。

jp1017

0个粉丝

78

问答

0

专栏

9

资料

jp1017 2015-08-05 11:57:15
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18847&ptid=8316]fox-cool 发表于 2015-8-5 10:15[/url]
这个要支持。你还可以研究下sqlite 这个在android下的轻量级数据库。[/quote]

刚看完这个sqlite的视频,谢谢你!!:lol

jp1017

0个粉丝

78

问答

0

专栏

9

资料

jp1017 2015-11-03 11:10:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18847&ptid=8316]fox-cool 发表于 2015-8-5 10:15[/url]
这个要支持。你还可以研究下sqlite 这个在android下的轻量级数据库。[/quote]

这货可以配合greenDAO服用,白天夜晚随便吃。。。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区