Android学习之SharedPerference存储详解
发布时间 - 2026-01-11 02:42:30 点击率:次SharedPerference不同同于文件存储,它是使用键值的方式来存储数据,对于保存的每一条数据都会给一个键值,这样在读取数据时直接通过键值取出相应数据。amdroid提供了三个方法来获取实例:

1.Context类中的getSharePreferences()方法
它接收两个参数,第一个是文件名;第二个是操作模式,目前只有MODE_PRIVATE可选,这是默认的操作模式,表示只有当前的应用可以对文件进行操作。
2.Activity类中的getPreference()方法
它只接收一个操作模式参数,因为使用这个方法会自动将类名SharedPreference作为文件名。
3.PreferenceManager类中的getDefaultSharedPreference()方法
主要由三步来实现:
(1)调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
(2)向SharedPreferences.Editor对象中添加数据,比如添加一个布尔型数据就使用putBoolean()方法,依次论推。
(3)调用apply()方法将添加的数据提交,从而完成数据操作。`
使用案例
MainActivity:
package com.example.sharedpreferences;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button button;
private Button restore_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.save_data);
button.setOnClickListener(this);
restore_btn = (Button)findViewById(R.id.restore_data);
restore_btn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.save_data:
saveData();
Toast.makeText(MainActivity.this,"保存成功!",Toast.LENGTH_SHORT).show();
break;
case R.id.restore_data:
restorData();
Toast.makeText(MainActivity.this,"恢复成功",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
public void saveData(){
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",18);
editor.putBoolean("married",false);
editor.apply();
}
public void restorData(){
SharedPreferences preferences = getSharedPreferences("data",MODE_PRIVATE);
String name = preferences.getString("name","");
int age = preferences.getInt("age",0);
boolean married = preferences.getBoolean("marred",false);
Log.d("主活动: ","获取到名字: "+name);
Log.d("主活动: ","获取到年龄: "+age);
Log.d("主活动: ","获取到婚配: "+married);
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.sharedpreferences.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/save_data"
android:text="保存数据"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/restore_data"
android:text="恢复数据"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# SharedPerference
# 存储
# Android应用开发SharedPreferences存储数据的使用方法
# android中使用SharedPreferences进行数据存储的操作方法
# Android调用相机并将照片存储到sd卡上实现方法
# Android开发笔记之: 数据存储方式详解
# Android编程实现手机自带内部存储路径的获取方法
# Android APP与媒体存储服务的交互
# Android App将数据写入内部存储和外部存储的示例
# Android 数据存储方式有哪几种
# 在android开发中进行数据存储与访问的多种方式介绍
# Android编程中的5种数据存储方式
# 键值
# 类中
# 方法来
# 这是
# 第一个
# 它是
# 第二个
# 布尔
# 可选
# 会给
# 来实现
# 以对
# 三步
# 使用这个
# 它只
# 大家多多
# 象中
# 法会
# java
# package
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS中新建站点并解决端口绑定冲突?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel如何实现文件上传和存储?(本地与S3配置)
装修招标网站设计制作流程,装修招标流程?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Python制作简易注册登录系统
如何在IIS服务器上快速部署高效网站?
Android okhttputils现在进度显示实例代码
Laravel怎么在Blade中安全地输出原始HTML内容
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Thinkphp 中 distinct 的用法解析
高防服务器租用如何选择配置与防御等级?
移动端脚本框架Hammer.js
EditPlus中的正则表达式 实战(2)
浅述节点的创建及常见功能的实现
*服务器网站为何频现安全漏洞?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
微信小程序 wx.uploadFile无法上传解决办法
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
如何自定义建站之星模板颜色并下载新样式?
如何在 Pandas 中基于一列条件计算另一列的分组均值
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
如何基于云服务器快速搭建个人网站?
如何快速查询网址的建站时间与历史轨迹?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
bing浏览器学术搜索入口_bing学术文献检索地址
如何在万网开始建站?分步指南解析
Laravel怎么清理缓存_Laravel optimize clear命令详解
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Laravel如何实现API版本控制_Laravel版本化API设计方案
如何注册花生壳免费域名并搭建个人网站?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何获取免费开源的自助建站系统源码?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
node.js报错:Cannot find module 'ejs'的解决办法
Laravel怎么连接多个数据库_Laravel多数据库连接配置
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel如何生成API文档?(Swagger/OpenAPI教程)
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析

