Android_数据存储-SharedPreferences

android studio关于sharedPreferences的数据存储 本人写这篇博客是为了复习之前学习的sharedPreferences的存储方法:本人刚学android所以如果我说的哪里有错请位见谅并指出谢谢! 如果是Android应用,Android 平台提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据, 文件存放在/data/ 阅读详情


一、SharedPreferences简介

1.了解SharedPreferences
        为了保存软件的设置参数,Android 平台为我们提供了一个SharedPreferences 类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences 保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs 目录下。

2.获取SharedPreferences对象方法:
        SharedPreferences pre = Context.getSharedPreferences(String name,int mode);
        name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件,在这里要特别注意,因为在Android 中已经确定了SharedPreferences 是以xml形式保存,所以,在填写文件名参数时,不要给定“.xml”后缀,android会自动添加。只要直接写上文件名即可。它会直接被保存在/data/data/<package name>/shared_prefs路径下,它是采用键值对的形式保存参数。当你需要获得某个参数值时,按照参数的键索引即可)。
        SharedPreferences pre = Activity.getPreferences(int mode);
        配置文件仅可以被调用的Activity使用。mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_APPEND、MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。
        SharedPreferences pre = PreferenceManager.getDefaultSharedPreferences(Context);
        每个应用都有一个默认的配置文件preferences.xml,使用getDefaultSharedPreferences获取。

3.SharedPreferences使用步骤:
        SharedPreferences使用非常简单,能够轻松地存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如:String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在XML文件中,再用SharedPreferences保存。
        使用SharedPreferences保存key-value对的步骤如下:
      (1)获得SharedPreferences对象
      (2)获得SharedPreferences.Editor对象。
      (3)通过SharedPreferences.Editor接口的putXxx()方法存放key-value对(其中Xxx表示不同的数据类型。如:字符串类型的value需要用putString()方法)。
      (4)通过SharedPreferences.Editor接口的commit()方法保存key-value对(commit方法相当于数据库事务中的提交(commit)操作)。

4.apply和commit的区别
       apply和commit方法都可以提交操作,那他们之间的区别是什么呢?
      (1)apply没有返回值,commit返回boolean表明修改是否提交成功 
      (2)apply是将数据提交到内存, 然后异步提交到硬件磁盘;commit是同步的提交到硬件磁盘。因此,在多个并发的提交的时候,commit提交方式会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。apply是先提交到内存,然后异步提交到硬件磁盘,这样从一定程度上提高了很多效率。 
      (3)apply方法不会提示任何失败的提示。 在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。

       个人的扯蛋总结:我个人总喜欢把程序的相关类都想象成一个帝国建筑(像Google总部,苹果总部)里面相关的东西进行记忆和理解!每做一个程序就相当于建造一个大楼,而SharedPreferences就是相当于一间存放相关配置信息的房间,里面有很多柜子,每个柜子放着对应的信息,我们可以根据柜子的名称去获取到相关的资料信息,这个房间就好像是SharedPreferences,只是一个存放信息的空间,我们可以获取和存放信息,可是我们存放信息需要整理成键值对的形式进行存放,这时候就需要一个editor工人,把相关的信息进行整理,然后就放到这个房间中!        

二、SharedPreferences工具类的Demo
        先看效果图:



       SharedPreferencesUtils的代码:

package com.liangdianshui.sharedpreferencesutildemo;

import android.content.Context;
import android.content.SharedPreferences;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;

/**
 * Created by liangdianshui on 2016/6/6.
 */
public class SharedPreferencesUtils {
    //文件名称
    private static final String NAME = "SharedPreferences_Date";

    /**
     * 根据数据类型的不同调用不同的方法保存数据到SharedPreferences中
     *
     * @param context 上下文
     * @param key     key名
     * @param object  数据值
     */
    public static void setParam(Context context, String key, Object object) {

        String type = object.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();

        if ("String".equals(type)) {
            editor.putString(key, (String) object);
        } else if ("Integer".equals(type)) {
            editor.putInt(key, (Integer) object);
        } else if ("Boolean".equals(type)) {
            editor.putBoolean(key, (Boolean) object);
        } else if ("Float".equals(type)) {
            editor.putFloat(key, (Float) object);
        } else if ("Long".equals(type)) {
            editor.putLong(key, (Long) object);
        }

        editor.commit();
    }


    /**
     * 根据默认值获取对应的数据类型,从SharedPreferences中获取对应的值
     *
     * @param context       上下文
     * @param key           key值
     * @param defaultObject 默认值
     * @return
     */
    public static Object getParam(Context context, String key, Object defaultObject) {
        String type = defaultObject.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);

        if ("String".equals(type)) {
            return sp.getString(key, (String) defaultObject);
        } else if ("Integer".equals(type)) {
            return sp.getInt(key, (Integer) defaultObject);
        } else if ("Boolean".equals(type)) {
            return sp.getBoolean(key, (Boolean) defaultObject);
        } else if ("Float".equals(type)) {
            return sp.getFloat(key, (Float) defaultObject);
        } else if ("Long".equals(type)) {
            return sp.getLong(key, (Long) defaultObject);
        }

        return null;
    }

    /**
     * 移除某个key值已经对应的值
     *
     * @param context
     * @param key
     */
    public static void remove(Context context, String key) {
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.remove(key);
        SharedPreferencesCompat.apply(editor);
    }


    /**
     * 清除所有数据
     *
     * @param context
     */
    public static void clear(Context context) {
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.clear();
        SharedPreferencesCompat.apply(editor);
    }


    /**
     * 查询某个key是否已经存在
     *
     * @param context
     * @param key
     * @return
     */
    public static boolean contains(Context context, String key) {
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
        return sp.contains(key);
    }

    /**
     * 返回所有的键值对
     *
     * @param context
     * @return
     */
    public static Map<String, ?> getAll(Context context) {
        SharedPreferences sp = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
        return sp.getAll();
    }


    /**
     * 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类
     */
    private static class SharedPreferencesCompat {
        private static final Method sApplyMethod = findApplyMethod();

        /**
         * 反射查找apply的方法
         *
         * @return
         */
        @SuppressWarnings({"unchecked", "rawtypes"})
        private static Method findApplyMethod() {
            try {
                Class clz = SharedPreferences.Editor.class;
                return clz.getMethod("apply");
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
            return null;
        }

        /**
         * 如果找到则使用apply执行,否则使用commit
         *
         * @param editor
         */
        public static void apply(SharedPreferences.Editor editor) {
            try {
                if (sApplyMethod != null) {
                    sApplyMethod.invoke(editor);
                    return;
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
            editor.commit();
        }
    }

}

       MainActivity的代码:
package com.liangdianshui.sharedpreferencesutildemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    public static final String PATH = "/data/data/com.liangdianshui.sharedpreferencesutildemo" +
            "/shared_prefs/SharedPreferences_Date.xml";
    private EditText mEtKey;
    private EditText mEtValue;
    private Button mBtSetParam;
    private Button mBtGetParam;
    private Button mBtRemove;
    private Button mBtClear;
    private Button mBtContains;
    private Button mBtGetAll;
    private Toast mToast;
    private TextView mTvText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mEtKey = (EditText) findViewById(R.id.et_key);
        mEtValue = (EditText) findViewById(R.id.et_value);
        mBtSetParam = (Button) findViewById(R.id.bt_setParam);
        mBtGetParam = (Button) findViewById(R.id.bt_getParam);
        mBtRemove = (Button) findViewById(R.id.bt_remove);
        mBtClear = (Button) findViewById(R.id.bt_clear);
        mBtContains = (Button) findViewById(R.id.bt_contains);
        mBtGetAll = (Button) findViewById(R.id.bt_getAll);
        mTvText = (TextView) findViewById(R.id.tv_text);
        mBtSetParam.setOnClickListener(this);
        mBtGetParam.setOnClickListener(this);
        mBtRemove.setOnClickListener(this);
        mBtClear.setOnClickListener(this);
        mBtContains.setOnClickListener(this);
        mBtGetAll.setOnClickListener(this);
    }

    /**
     * 获取存储文件的数据
     */
    private String printSharedPreferences() {
        StringBuffer buff = new StringBuffer();
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    new FileInputStream(PATH)));
            String str;
            while ((str = reader.readLine()) != null) {
                buff.append(str + "\n");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return buff.toString();
    }


    @Override
    public void onClick(View v) {
        String key;
        String value;
        switch (v.getId()) {
            case R.id.bt_setParam:
                key = mEtKey.getText().toString();
                value = mEtValue.getText().toString();
                if ((!"".equals(key)) && (!"".equals(value))) {
                    SharedPreferencesUtils.setParam(this, key, value);
                    mTvText.setText(printSharedPreferences());
                } else {
                    showToast("key和value不能为空!");
                }
                break;
            case R.id.bt_getParam:
                key = mEtKey.getText().toString();
                value = mEtValue.getText().toString();
                if ((!"".equals(key)) && (!"".equals(value))) {
                    mTvText.setText(printSharedPreferences());
                    showToast("获取的值为:" + SharedPreferencesUtils.getParam(this, key, value).toString());
                } else {
                    showToast("key和value不能为空!");
                }
                break;
            case R.id.bt_remove:
                key = mEtKey.getText().toString();
                if (!"".equals(key)) {
                    SharedPreferencesUtils.remove(this, key);
                    showToast("移除成功");
                    mTvText.setText(printSharedPreferences());
                } else {
                    showToast("key不能为空!");
                }
                break;
            case R.id.bt_clear:
                SharedPreferencesUtils.clear(this);
                showToast("清除成功");
                mTvText.setText(printSharedPreferences());
                break;
            case R.id.bt_contains:
                key = mEtKey.getText().toString();
                if (!"".equals(key)) {
                    SharedPreferencesUtils.contains(this, key);
                    showToast("key值存在");
                } else {
                    showToast("key不能为空!");
                }
                break;
            case R.id.bt_getAll:
                Map<String, String> all = (Map<String, String>) SharedPreferencesUtils.getAll(this);
                showToast(all.toString());
                break;
        }
    }


    private void showToast(String text) {
        if (mToast == null) {
            mToast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
        } else {
            mToast.setText(text);
        }
        mToast.show();
    }
}

       Demo下载地址: http://download.youkuaiyun.com/detail/two_water/9543283

【dify】 dify环境变量配置说明 SMTP_SERVER、SMTP_PORT、SMTP_USERNAME、SMTP_PASSWORD、SMTP_USE_TLS、SMTP_OPPORTUNISTIC_TLS:当 MAIL_TYPE 为 smtp 时,SMTP服务器的相关配置。UPLOAD_IMAGE_FILE_SIZE_LIMIT、UPLOAD_VIDEO_FILE_SIZE_LIMIT、UPLOAD_AUDIO_FILE_SIZE_LIMIT:分别为上传图像、视频、音频文件的大小限制(MB)。 阅读详情

相关推荐

ICC 实战解析——CTS 时钟树综合中的关键设置与优化策略

本文深入解析ICC工具中CTS时钟树综合的关键设置与优化策略,涵盖时钟树异常引脚设置、目标参数配置、非默认布线规则(NDR)等核心技术。通过实战案例展示如何有效控制时钟偏差、优化信号完整性,并平衡功耗与面积,为芯片物理设计提供专业指导。

weixin_30872577的博客 324

SharedPreferences封装

转载地址:https://www.cnblogs.com/mlgm/p/7722647.html package com.zhy.utils; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import android.content.Context; import android.content.SharedPreferences;

lcp0633的博客 528

高通平台Camera sensor bring up!

Qualcomm Camera sensor bring up!0. 准确1. Kernel 底层驱动配置1.1 dtsi1.2 pinctrl2. Chi-Cdk XML 配置2.1 sensormodule2.2 sensor3. CHECK 本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】 —only for sensor probe sucess. 0....

Understand-image 9239

SharedPreferences 源码及原理

SharedPreferences 源码及原理 SharedPreferences 是Android中提供的一种轻量级数据存储方式,用来以键值对方式保存简单的数据类型。 创建流程 Android开发者通过Context的方法context.getSharedPreferences(String, Int)来获取SharedPreferences实例。Context中的具体实现如下 @Override public SharedPreferences getSharedPreferences(

binzeefox的博客 714

高通QCOM Camera Pipeline 可视化工具:从XML到交互式图谱的工程实践

本文详细介绍了高通QCOM Camera Pipeline可视化工具的工程实践,旨在解决Camera驱动与算法工程师在解析复杂XML配置文件时的痛点。该工具能将静态的XML文件(如g_camx_usecase.xml)自动转换为交互式视觉图谱,通过分层布局算法清晰展示Pipeline、Node、Port和Link的拓扑关系,并支持悬停查看、拖动缩放等交互操作,极大提升了开发调试与架构理解的效率。

prometheus5watch的博客 555

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

android sharedPreferences的用法

SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。 使用SharedPreferences保存key-value对的步骤如下:

kabukistt3的专栏 752

刚体转动欧拉方程:从理论到卫星姿态控制的实践

刚体转动欧拉方程是描述刚体旋转运动的基本动力学方程,在卫星姿态控制、机器人学、航空航天等领域有着广泛应用。本文将详细讲解欧拉方程的物理概念、数学推导、数值计算方法,并重点分析其在卫星姿态控制系统中的具体应用。

ScilogyHunter的博客 642

Android数据存储方式之SharedPreferences

在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式: 1、文件 2、 SharedPreferences( 参数 ) 3、SQLite数据库 4、 内容提供者( Content provider ) 5、网络 在这里我们将对sharedpreferences存储方式进行介绍。

you_jinjin的专栏 817

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

Lua与C++之间的参数转换的实现原理

TurboQ珞珈 898

win10解决IE浏览器安装不上的问题(卸载依然显示不能安装)

目前win10 系统不支持外部ie安装程序,所以必须用win10自带的应用来安装 一、错误的卸载的方式 在控制面板的当前安装的程序界面是看不到ie的,需要选择控制面板左上角的启用或关闭windows功能 将ie11前面的勾勾去掉 这种方法是很多网站上的误区,其实这并没有卸载成功ie只是把ie的功能关闭了,但是他还在你的电脑上。你可以理解为我们说的对文件夹执行的隐藏文件夹功能。那个隐藏的文件夹依...

清平乐的技术专栏 3万+

SharedPreferences存储

SharedPreferences介绍: 1、一种轻型的数据存储方式 2、本质是基于xml文件存储键值对数据 3、通常用来存储一些简单的配置文件 一、他对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现二、实现SharedPreferences存储的步骤:1、获得SharedPreferences对象 2、获得SharedPreferences.Editor对象

tjj93622的专栏 552

[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究

上一篇文章详细讲解如何利用数据增强方法实现图像数据集的扩充,并以濒危水书作为案例讲解。这篇文章将详细讲解基于机器学习的水书图像识别方法,以图像像素统计为特征开展图像分类讲解,这是最基础的方法,也为后续深度学习图像分类描述提供支撑。基础性文章,希望对您有所帮助!让我们开始吧,且看且珍惜。

杨秀璋的专栏 989

【安卓数据存储】——SharedPreferences

【Android】数据存储(一) SharedPreferences详解0.222016.04.29 00:13:33字数 919阅读 13345SharedPreferences介绍 在Android开发中,经常需要将少量简单类型数据保存在本地,如:用户设置。这些需要保存的数据可能一两个字符串,像这样的数据一般选择使用SharedPreferences来保存。 SharedPreference...

qq_43748400的博客 354

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

深入剖析Android中最简单的数据存储方式:SharedPreferences

一. 使用SharedPreferences存储数据 使用 SharedPreferences 保存key-value对的步骤一般是这样: 使用Activity类的getSharedPreferences方法获取到 SharedPreferences 对象,指定文件名和访问权限 获得SharedPreferences.Editor对象,并使用该对象的 putXxx方法保存key-value对。 通过SharedPreferences.Editor的commit方法保存(提交)key-value对。

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 2681

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android Studio SharedPreferences数据存储的学习

Android Studio SharedPreferences数据存储的学习 Android Studio 有三种数据存储的方式,作为入门,将上周学习的SharedPreferences形式的数据存储方式进行总结,发布在我的blog上 首先,我也是作为了解,先入门学习了一些相关知识 如下图所示,一般的使用方式是 1.获取SharePreferences对象,同时指定名称和访问权限 2.获取SharePreferences的编辑器对象,其中Editor是sharePreferences中的一个类 3.通

farzena的博客 3061

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android数据存储之SharedPreferences

SharedPreferences是一种轻量级的数据存储方式,采用键值对的存储方式。 SharedPreferences**只能存储少量数据**,大量数据不能使用该方式存储,支持存储的数据类型有boolean、float、int、long、string。 SharedPreferences**存储到一个XML文件中的**,路径在**/data/data/<packagename>/shared_prefs/**下,文件名以及存储后面详细讲述

qq_41466437的博客 1538

Android中的5种数据存储方式之——SharedPreferences

Android中的5种数据存储方式之——SharedPreferences简介 SharedPreferences是Android平台上一个轻量级数据存储方式,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保到SharedPereferences中;当Activity重载,系统回调方法 onSaveInstanceState时,再从Shar

默 4783

安卓数据存储之SharedPreferences存储

(此博文使用的工具为Eclipse) 首先介绍一下SharedPreferences是使用键值对的方式来存储数据的,每次存储数据的时候需要给这条数据提供一个对应的键,这样读取数据的时候就可以根据这个键吧对应的值取出来。 使用SharedPreferences来进行数据持久化要比使用文件方便很多。 1、将数据存储到SharedPreferences中: 要想使用SharedPreferenc...

Imfondof 719

Android数据存储——SharedPreferences

Android数据存储——SharedPreferences 一、数据存储选项:Data Storage ——Storage Options【重点】 1、Shared PreferencesStore private primitive data in key-value pairs.保存简单的键值对数据。2、Internal StorageStore priv

luffy的专栏 1859

Android数据存储五大方式之-SharedPreferences

第一个值使得SharedPreferences存储的数据只能在本应用内获得,第二个和第三个。值分别使得其他应用可以读和读写本应用SharedPreferences存储的数据。(1)参数一为要保存的xml文件名,不同的文件名产生的对象不同,但同一文件名可以产。此处注意指定参数一时,不用加xml后缀,由。Key1是要查询的键,返回对应的值,当键不存在时,返回key2作为结果。可以实现数据的更新只需添加同键的键值对,和操作Map集合一样。删除参数部分键的键值对。(参数一,参数二);

2501_90212852的博客 666

android数据存储之SharedPreferences详解。

文章目录1.概念2.SharedPreferences应用2.1获取SharedPreferences对象的方法2.2存储数据实现 1.概念 1.它是一种轻量级的数据存储方式,采用键值对的存储方式。 2.它只能存储少量数据,支持存储的数据类型有booleans, floats, ints, longs, and strings。 3.存储到一个XML文件中的,路径在/data/data//shared_prefs/下。 4.默认存储路径:/data/data//shared_prefs 操作模式:MODE_

深耕安全技术研究 3052

Android 数据存储笔记一 SharedPreferences数据存储

问题一:为什么要引入数据存储? 所有的应用程序都必然会涉及数据的输入,输出,Android应用也不例外,应用程序的参数,设置,程序运行状态数据这些都需要保存到外部存储器上,这样系统关机之后数据才不会丢失。 问题二:何时使用SharedPreferences存储数据? SharedPreferences主要用来保存键值对形式的配置信息格式的数据。 一.SharedPrefer

一棵开花的树 503

Android数据存储 SharedPreferences及SDCard

一、数据存储选项:Data Storage ——Storage Options 1、Shared Preferences Store private primitive data in key-value pairs. 保存简单的键值对数据。 2、Internal Storage Store private data on the device memory. 在手机内存中保存不对外...

bobo的博客 837

Android 数据存储 (一)SharedPreferences

这篇主要讲一下平常用到的数据存储SharedPreferences,结合demo说下其用法。 1 简介 SharedPreferences是Android提供的一种存储数据的机制,用于存储少量数据,数据类型包括(boolean 、int、long、float、string),主要用于存储应用的配置信息,例如:用户名、密码、是否开启震动、音乐等。。 它实际上是以键值对的形式储存在xml文件

奋斗的菜鸟ing 1575

15、Android数据存储——SharedPreferences及SDCard

Android数据存储——SharedPreferences及SDCard 一、数据存储选项:Data Storage ——Storage Options【重点】 1、Shared PreferencesStore private primitive data in key-value pairs.保存简单的键值对数据。2、Internal StorageS

yangzhenyutmac的博客 1531
上一篇: Android Studio_Android Studio Template
下一篇: Android_数据存储-SQLite
Two_Water
博客等级 码龄12年 573粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值