android之存储篇_SharedPreferences存储方式

SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:  一、根据C

大家好,又见面了,我是全栈君。         SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

  一、根据Context获取SharedPreferences对象

  二、利用edit()方法获取Editor对象。

  三、通过Editor对象存储key-value键值对数据。

  四、通过commit()方法提交数据。

  具体实现代码如下:

public class MainActivity extends Activity {
     @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //获取SharedPreferences对象
        Context ctx = MainActivity.this;       
        SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
        //存入数据
        Editor editor = sp.edit();
        editor.putString("STRING_KEY", "string");
        editor.putInt("INT_KEY", 0);
        editor.putBoolean("BOOLEAN_KEY", true);
        editor.commit();
        
        //返回STRING_KEY的值
        Log.d("SP", sp.getString("STRING_KEY", "none"));
        //如果NOT_EXIST不存在,则返回值为"none"
        Log.d("SP", sp.getString("NOT_EXIST", "none"));
     }
 }

   这段代码执行过后,即在/data/data/com.test/shared_prefs目录下生成了一个SP.xml文件,一个应用可以创建多个这样的xml文件。如图所示: 

android之存储篇_SharedPreferences存储方式

   SP.xml文件的具体内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="STRING_KEY">string</string>
<int name="INT_KEY" value="0" />
<boolean name="BOOLEAN_KEY" value="true" />
</map>

  在程序代码中,通过getXXX方法,可以方便的获得对应Key的Value值,如果key值错误或者此key无对应value值,SharedPreferences提供了一个赋予默认值的机会,以此保证程序的健壮性。如下图运行结果中因为并无值为”NOT_EXIST”的Key,所以Log打印出的是其默认值:“none”。在访问一个不存在key值这个过程中,并无任何异常抛出。  

android之存储篇_SharedPreferences存储方式

  SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121426.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux非root用户启动nginx,Linux 普通用户启动nginx

    linux非root用户启动nginx,Linux 普通用户启动nginx现象nginx配置的user为www用户,root启动之后主进程显示root,子进程显示是www,但是切换到www用户之后执行nginx-t等报错services@pts/0$/usr/local/nginx/sbin/nginx-tnginx:[warn]the”user”directivemakessenseonlyifthemasterprocess…

    2022年9月26日
    0
  • c语言pow对函数调用不明确(c语言i++和++i)

    pow()函数用来求baix的y次幂,x、y及函数值都是double型,其原型du为:zhidoublepow(doublex,doubley)。实例代码如下:#include<stdio.h>#include<math.h>voidmain(){doublex=2,y=10;printf(“%f\n”,pow(x,y));return0;}结果:1024扩展bai资料:在调用pow函数时,可能导致错误.

    2022年4月11日
    63
  • JavaIO流程–创建文件和目录的实例

    JavaIO流程–创建文件和目录的实例

    2022年1月11日
    50
  • android调用相册和摄像头_网页调用摄像头拍照

    android调用相册和摄像头_网页调用摄像头拍照Android调用系统的拍照,打开相册功能1添加权限:uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>uses-permissionandroid:name="android.permission.CAMERA"/>2设置标志(回传码)//

    2022年4月19日
    44
  • [图文教程] 手把手教你安装Android SDK

    [图文教程] 手把手教你安装Android SDK配置环境总是痛苦的,不断地找教程,寻方法……在不断犯错的道路上跌跌撞撞……有点收获还好但是!几百年不配置一次环境,要这经验值何用?记录下来吧,以后也可以傻瓜式跟着教程走我已经下载并安装了AndroidStudio没有下载安装的可移步————>AndroidStudio官网下载开始下载AndroidSDK不用跑了——》AndroidSDK免费下载安装地址不让改不是…下一步吧安装权限……好像问题不大,下一步安装位置……可以更改…

    2022年7月21日
    11
  • SCI论文投稿Cover Letter的写作

    SCI论文投稿Cover Letter的写作http://www.dxy.cn/bbs/topic/19651815SCI论文投稿CoverLetter的写作和中文投稿有很大的不同,CoverLetter的撰写对于新手而言不知该写什么,而对于老手往往又被忽视,CoverLetter重要吗?可有可无吗?下面我将从科学网转载系列有关CoverLetter的帖子,但愿对于新手、老手都有所帮助:#1CoverLet

    2022年5月24日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号