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 &#39;ejs&#39;的解决办法  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel如何生成API文档?(Swagger/OpenAPI教程)  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析