【Android studio】共享参数SharedPreferences使用
前言
本博文主要是Android studio中SharedPreferences使用的一个介绍,以及记录,方便后续使用时候可以直接加载。
SharedPreferences
SharedPreferences是Android中一种轻量级的数据存储方式,它提供了一个简单的键值对存储的机制,用于存储少量的应用程序配置信息或者用户偏好设置。
SharedPreferences是基于XML文件存储的,它将键值对以键值对的形式保存在一个XML文件中。
SharedPreferences主要有以下几个特点:
-
简单易用:SharedPreferences提供了简单的API用于存储和读取数据,使用简单方便。
-
跨应用共享:SharedPreferences存储的数据可以在同一应用的不同组件中共享,也可以跨应用共享(需要权限)。
-
数据持久化:SharedPreferences中的数据会持久保存在设备的存储空间中,即使应用关闭或设备重启,数据仍然存在。
-
支持多种数据类型:SharedPreferences支持存储多种基本数据类型,如字符串、整数、浮点数、布尔值等。
使用SharedPreferences存储数据需要以下步骤:
-
获取SharedPreferences对象:可以通过Context的getSharedPreferences()方法获取SharedPreferences对象,需要传入一个文件名和一个模式,文件名是存储数据的XML文件名,模式是访问权限。
-
编辑SharedPreferences对象:可以通过SharedPreferences对象的edit()方法获取到SharedPreferences.Editor对象,通过该对象进行数据的存储和修改。
-
存储数据:通过SharedPreferences.Editor对象的putXXX()方法存储数据,其中XXX可以是字符串、整数、浮点数、布尔值等。
-
提交数据:通过SharedPreferences.Editor对象的commit()方法提交数据,将数据保存到XML文件中。
-
读取数据:通过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"));
}