【Android studio】共享参数SharedPreferences使用

【Android studio】共享参数SharedPreferences使用


前言

本博文主要是Android studio中SharedPreferences使用的一个介绍,以及记录,方便后续使用时候可以直接加载。
在这里插入图片描述

SharedPreferences

SharedPreferences是Android中一种轻量级的数据存储方式,它提供了一个简单的键值对存储的机制,用于存储少量的应用程序配置信息或者用户偏好设置。

SharedPreferences是基于XML文件存储的,它将键值对以键值对的形式保存在一个XML文件中。

SharedPreferences主要有以下几个特点:

  1. 简单易用:SharedPreferences提供了简单的API用于存储和读取数据,使用简单方便。

  2. 跨应用共享:SharedPreferences存储的数据可以在同一应用的不同组件中共享,也可以跨应用共享(需要权限)。

  3. 数据持久化:SharedPreferences中的数据会持久保存在设备的存储空间中,即使应用关闭或设备重启,数据仍然存在。

  4. 支持多种数据类型:SharedPreferences支持存储多种基本数据类型,如字符串、整数、浮点数、布尔值等。

使用SharedPreferences存储数据需要以下步骤:

  1. 获取SharedPreferences对象:可以通过Context的getSharedPreferences()方法获取SharedPreferences对象,需要传入一个文件名和一个模式,文件名是存储数据的XML文件名,模式是访问权限。

  2. 编辑SharedPreferences对象:可以通过SharedPreferences对象的edit()方法获取到SharedPreferences.Editor对象,通过该对象进行数据的存储和修改。

  3. 存储数据:通过SharedPreferences.Editor对象的putXXX()方法存储数据,其中XXX可以是字符串、整数、浮点数、布尔值等。

  4. 提交数据:通过SharedPreferences.Editor对象的commit()方法提交数据,将数据保存到XML文件中。

  5. 读取数据:通过SharedPreferences对象的getXXX()方法读取数据,其中XXX对应存储时的数据类型,如果没有找到对应的键值对,会返回一个默认值。

通过SharedPreferences可以方便地存储和读取应用程序的配置信息或用户偏好设置,是Android开发中常用的数据存储方式之一。

使用实例

Utils

package com.example.qcwcd.util;

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

import java.util.HashMap;
import java.util.Map;

/**
 * Created by 孙海涛 on 2021/11/29.
 */

public class Utils {
    public static boolean saveUserInfo(Context context, String ip) {
        SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);//数据自己可用
        SharedPreferences.Editor edit = sp.edit();
        edit.putString("ip", ip);
        edit.commit();
        return true;//存储成功
    }

    // 从data.xml中获取
    public static Map<String, String> getUserInfo(Context context) {
        SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);
        String module_id = sp.getString("ip", null);
        Map<String,String> userMap = new HashMap<String, String>();
        userMap.put("ip", module_id);
        return userMap;
    }

}

调用

Map<String,String> userInfo= Utils.getUserInfo(this);
        if(userInfo.get("ip")==null){
            System.out.println("获取内容为空");
        }else{
            num_tv.setText("当前设备编号:"+userInfo.get("ip"));
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值