SharedPreferences 操作

2023-11-06

  1. public class SPActivity extends Activity {  
  2.      
  3.     /**使用SharedPreferences 来储存与读取数据**/  
  4.     SharedPreferences mShared = null;  
  5.   
  6.     /**程序中可以同时存在多个SharedPreferences数据, 根据SharedPreferences的名称就可以拿到对象**/  
  7.     public final static String SHARED_MAIN = "main";  
  8.      
  9.     /**SharedPreferences中储存数据的Key名称**/  
  10.     public final static String KEY_NAME = "name";  
  11.     public final static String KEY_NUMBER = "number";  
  12.       
  13.     /**SharedPreferences中储存数据的路径**/  
  14.     public final static String DATA_URL = "/data/data/";  
  15.     public final static String SHARED_MAIN_XML = "main.xml";  
  16.       
  17.       
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.     setContentView(R.layout.sharedpreferences);  
  21.     /**拿到名称是SHARED_MAIN 的SharedPreferences对象**/  
  22.     mShared = getSharedPreferences(SHARED_MAIN, Context.MODE_PRIVATE);  
  23.     /**拿到SharedPreferences中保存的数值 第二个参数为如果SharedPreferences中没有保存就赋一个默认值**/  
  24.     String name = mShared.getString(KEY_NAME, "数据库中没有储存姓名");  
  25.     String number = mShared.getString(KEY_NUMBER, "数据库中没有储存号码");  
  26.       
  27.     final EditText editName = (EditText)findViewById(R.id.sp_et0);  
  28.     final EditText editNumber = (EditText)findViewById(R.id.sp_et1);  
  29.     editName.setHint("上次输入的姓名为【 " +name+"】");  
  30.     editNumber.setHint("上次输入的号码为【 " +number+"】");  
  31.       
  32.     Button button0 = (Button)findViewById(R.id.sp_button0);  
  33.       
  34.     /**监听按钮点击后保存用户输入信息到SharedPreferences中**/  
  35.     button0.setOnClickListener(new  OnClickListener() {  
  36.           
  37.         @Override  
  38.         public void onClick(View arg0) {  
  39.         /**拿到用户输入的信息**/  
  40.         String name = editName.getText().toString();  
  41.         String number = editNumber.getText().toString();  
  42.         /**开始保存入SharedPreferences**/  
  43.         Editor editor = mShared.edit();  
  44.         editor.putString(KEY_NAME, name);  
  45.         editor.putString(KEY_NUMBER, number);  
  46.         /**put完毕必需要commit()否则无法保存**/  
  47.         editor.commit();  
  48.         ShowDialog("保存SharedPreferences成功");  
  49.           
  50.         }  
  51.     });  
  52.       
  53.     Button button1 = (Button)findViewById(R.id.sp_button1);  
  54.     button1.setOnClickListener(new  OnClickListener() {  
  55.           
  56.         @Override  
  57.         public void onClick(View arg0) {  
  58.         /**开始清除SharedPreferences中保存的内容**/  
  59.         Editor editor = mShared.edit();  
  60.         editor.remove(KEY_NAME);  
  61.         editor.remove(KEY_NUMBER);  
  62.         //editor.clear();   
  63.         editor.commit();  
  64.         ShowDialog("清除SharedPreferences数据成功");  
  65.         }  
  66.     });  
  67.       
  68.     Button button2 = (Button)findViewById(R.id.sp_button2);  
  69.     button2.setOnClickListener(new OnClickListener() {  
  70.   
  71.         @Override  
  72.         public void onClick(View arg0) {  
  73.         /** 删除SharedPreferences文件 **/  
  74.         File file = new File(DATA_URL + getPackageName().toString()  
  75.             + "/shared_prefs", SHARED_MAIN_XML);  
  76.         if (file.exists()) {  
  77.             file.delete();  
  78.         }  
  79.         ShowDialog("删除SharedPreferences文件成功");  
  80.         }  
  81.     });  
  82.       
  83.       
  84.     super.onCreate(savedInstanceState);  
  85.     }  
  86.   
  87.     public void ShowDialog(String string) {  
  88.     AlertDialog.Builder builder = new AlertDialog.Builder(SPActivity.this);  
  89.     builder.setIcon(R.drawable.icon);  
  90.     builder.setTitle(string);  
  91.     builder.setPositiveButton("确定"new DialogInterface.OnClickListener() {  
  92.         public void onClick(DialogInterface dialog, int whichButton) {  
  93.         finish();  
  94.         }  
  95.     });  
  96.     builder.show();  
  97.     }  
  98. }  
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="fill_parent"   
  5.     android:layout_height="fill_parent"  
  6.     android:orientation="vertical"  
  7.     >  
  8.     <ImageView android:id="@+id/sp_image"  
  9.         android:layout_width="wrap_content"  
  10.          android:layout_height="wrap_content"  
  11.         android:src="@drawable/image"  
  12.         android:layout_gravity="center"  
  13.         />  
  14.     <EditText android:id="@+id/sp_et0"  
  15.               android:layout_width="fill_parent"  
  16.               android:layout_height="wrap_content"  
  17.               android:hint="请输入你的姓名">  
  18.     </EditText>  
  19.     <EditText android:id="@+id/sp_et1"  
  20.               android:layout_width="fill_parent"  
  21.               android:layout_height="wrap_content"  
  22.               android:hint="请输入你的号码">  
  23.     </EditText>  
  24.     <Button   android:id="@+id/sp_button0"  
  25.               android:layout_width="wrap_content"  
  26.               android:layout_height="wrap_content"  
  27.               android:text="保存输入内容shared">  
  28.     </Button>  
  29.     <Button   android:id="@+id/sp_button1"  
  30.               android:layout_width="wrap_content"  
  31.               android:layout_height="wrap_content"  
  32.               android:text="清除shared保存内容">  
  33.     </Button>  
  34.     <Button   android:id="@+id/sp_button2"  
  35.               android:layout_width="wrap_content"  
  36.               android:layout_height="wrap_content"  
  37.               android:text="删除shared文件">  
  38.     </Button>  
  39. </LinearLayout>  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SharedPreferences 操作 的相关文章

随机推荐

  • Unity 优化1

    我认为unity的优化可以从三方面入手 分别是资源优化 性能优化和内存优化 由于每一方面的优化内容都比较多 我在这里主要分析一下性能优化 系统性能的好与差主要是通过系统的相应时间来衡量的 如果系统的响应时间超过500毫秒 用户就会感觉到明显
  • ASAP标注软件安装教程Ubuntu20.04

    以下转载自Github 需要针对ubuntu20 04 python3 8进行修改 DeepLearningCamelyon ASAP installation Ubuntu 16 04 at master 3dimaging DeepLe
  • 神武跑环遇到服务器维护,神武跑环不再痛苦:任务链重点难点详解攻略

    神武跑环不再痛苦 任务链重点难点详解攻略 大家快来看看吧 神武跑环不再痛苦 任务链重点难点详解攻略 相关新闻 任务链攻略 任务内容包括 找人 找到NPC对话即可 无时限 击败NPC 击败指定NPC即可 40分钟 难度较高 寻找物品交予NPC
  • kali功能介绍及安装(超详细)

    kali功能介绍及安装 超详细 一 kali简介 1 描述 Kali Linux是一个操作系统 2013 03 13诞生 基于Debian Linux的发行版 基于包含了约600个安全工具 省去了繁琐的安装 编译 配置 更新步骤 为所有工具
  • Python字符串中的特殊字符

    f 字符串 格式化字符串 在字符串前面加上 f 可以创建一个格式化字符串 在其中可以使用花括号 来插入变量或表达式的值 这种字符串会在运行时进行格式化处理 例如 name Alice age 25 print f My name is na
  • js实现图片懒加载原理

    有时候一个网页会包含很多的图片 例如淘宝京东这些购物网站 商品图片多只之又多 页面图片多 加载的图片就多 服务器压力就会很大 不仅影响渲染速度还会浪费带宽 比如一个1M大小的图片 并发情况下 达到1000并发 即同时有1000个人访问 就会
  • 学习记录Linux搭建nginx

    安装编译工具及库文件 yum y install make zlib zlib devel gcc c libtool openssl openssl devel 首先要安装 PCRE 下载 PCRE 安装包 下载地址 http downl
  • Pycharm常用快捷键大全

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net momoda118 article details 120155611 工欲善其事必先
  • 如何将任意大小的图片填充成一个方形

    这种方式我认为是最适合的图片预处理方式 随意resize会改变图片的特征 而进行填充的方式除了会改变原来标签的坐标以外 可以完全保留图片上所有的物体最原始的特征 def pad to square img pad value c h w i
  • 用Gerrit commit时报错missing Change-Id in message footer

    本人在第一次使用Gerrit时提交代码一直报change Id找不到 在git log的时候显示如下 查询其他文档发现是commit msg文件不存在导致的 现给出解决方案 提示错误 错误信息如下 remote Resolving delt
  • ctfshow终极考核wp

    文章目录 web640 web641 web642 web643 web644 web645 web646 web647 web648 web649 web650 web651 web652 web653 web654 web640 打开页
  • 【华为OD机试】支持优先级的队列【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 实现一个支持优先级的队列 高优先级先出队列 同优先级时先进先出 如果两个输入数据和优先级都相同 则后一个数据不入队列被丢弃 队列存储的数据内容是一个整数 输入描述 一
  • 修改 Linux VM 中单个用户最大进程数的限制

    在部署有并发任务执行的虚机上 会遇到 SSH 无法访问的问题 本文将帮助你找出其中一种比较特殊的原因 并提供解决方案 Note 以下案例分析基于 CentOS 7 对于其他版本的 Linux 操作系统 会略有不同 请注意 症状描述 虚机在正
  • BaoStock:一个免费、开源的python证券数据接口包

    如果需要获取历史行情数据 www baostock com是个很好的免费 开源的Python证券数据接口包 特点 使用方便 免费免费免费 返回的绝大部分的数据格式都是pandas DataFrame类型 入门代码如下 import baos
  • 分布式系统常用的模式

    分布式系统常用的模式 Ambassador 名称 大使 模式 介绍 作为应用程序和其他服务的 中间人 负责应用程序和其他服务之间的通信 包括日志 监控或重试处理等任务 举例 K8S使用Envoy作为一个 大使 来简化服务之间的通信 优点 降
  • MySQL多表查询

    目录 一 查询和新增结合 二 聚合查询 1 聚合函数 2 group by子句 三 联合查询 1 笛卡尔积 1 内连接 2 外连接 1 左外连接 2 右外连接 3 自连接 4 子查询 嵌套查询 5 合并查询 一 查询和新增结合 将表2中的数
  • 第十二届蓝桥杯省赛第二场C/C++大学B组编程题题目及解析

    目录 试题F 特殊年份 试题G 小平方 试题H 完全平方数 试题I 负载平衡 试题J 国际象棋 试题F 特殊年份 include
  • 【Linux】设计模式

    目录 1设计模式 1 1概念 1 2设计模式分类 1 3单例模式 1 4单例模式代码演示 1 4 1懒汉模式 1 4 2饿汉模式 2 读写锁 2 1概念 2 2加锁规则 2 3接口 2 3 1初始化接口 2 3 2销毁接口 2 3 3解锁接
  • 第1章第5节:如何使用模板创建风格统一的幻灯片 [PowerPoint精美幻灯片实战教程]

    使用模板可以创建美观 风格统一和专业的幻灯片 要使用模板创建幻灯片 首先点击此处的文件选项卡 进入文件功能页面 然后在左侧的命令列表中 点击新建命令 在页面的下方 是由微软提供的常见的演示文稿模板 也可以通过搜索框 搜索指定主题的模板 点击
  • SharedPreferences 操作

    public class SPActivity extends Activity 使用SharedPreferences 来储存与读取数据 SharedPreferences mShared null 程序中可以同时存在多个SharedPr