sharedPreferences

2023-11-19

sharedpreferences (共享参数):也是保存数据的一种方法,通常用于持久化数据(定期更新保存数据)类似ajax的定时刷新。

示例代码(主要来源于黑马教程)如下:

import java.util.Timer;
import java.util.TimerTask;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {
	protected static final String TAG = "MainActivity";
	private EditText et_title;
	private EditText et_content;
	private Timer timer;
	private TimerTask task;
	private SharedPreferences sp;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_title = (EditText) findViewById(R.id.et_title);
		et_content = (EditText) findViewById(R.id.et_content);

		//得到系统的参数的保持器,类似于new文件对象,把内容保存在info.xml文件中
		sp = this.getSharedPreferences("info", MODE_PRIVATE);

		String title = sp.getString("title", "");
		String content = sp.getString("content", "");
		et_content.setText(content);
		et_title.setText(title);

		timer = new Timer();
		task = new TimerTask() {

			@Override
			public void run() {
				Log.i(TAG,"定期保存数据");

				String title = et_title.getText().toString().trim();
				String content = et_content.getText().toString().trim();
				//得到参数文件的编辑器.
				Editor editor = sp.edit(); //类似得到输出流.

				//通过xml文件来存储数据
				editor.putString("title", title);
				editor.putString("content", content);

				//editor.putInt("intnumber", 333);
				//editor.putBoolean("booleanresuklt", false);

				editor.commit();//把数据提交到参数文件里面. 类似数据库的事务(commit,rollback)
			}
		};
		timer.schedule(task, 2000, 5000);//每个5s执行一次任务
	}

}

总结sharedpreferences的使用方法:

  1)通过上下文环境(this)获取参数的保持器--> this.getSharedPreferences("info", MODE_PRIVATE);同时可以设置文件名与模式;

  2)通过参数保持器获得参数文件的编辑器--> Editor editor = sp.edit();类似与java中普通文件的输出流,可用于文件写操作
  (支持写各种不同类型的数据editor.putInt();editor.putString();...);

  3)最后通过方法 editor.commit();把写好的数据一次性提交到指定的参数文件中(xml文件);

  PS:此示例中,除了要学会sharedpreferences的用法外,还要学习或者加深对Timer and TimerTask 的一般用法(java知识)

  

转载于:https://www.cnblogs.com/allenpengyu/p/3662225.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sharedPreferences 的相关文章

  • 使用 Java 的 Apache Http 摘要身份验证

    我目前正在开发一个 Java 项目 但无法使 http 摘要身份验证正常工作 我尝试使用 Apache 网站 但没有帮助 我有一个需要 HTTP 摘要身份验证的网站 DefaultHttpClient httpclient new Defa
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • 什么是抽象类? [复制]

    这个问题在这里已经有答案了 当我了解抽象类时 我说 WT H 问题 创建一个无法实例化的类有什么意义呢 为什么有人想要这样的课程 什么情况下需要抽象类 如果你明白我的意思 最常见的是用作基类或接口 某些语言有单独的interface构建 有
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 如何在字段值无效的情况下更改 Struts2 验证错误消息?

    我在 Web 表单上使用 Struts2 验证 如果字段假设为整数或日期 则
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v

随机推荐

  • Django2 Postman 模拟POST提交,提示:Forbidden (CSRF cookie not set.) 403

    解决方法 去除django项目中settings py中的 MIDDLEWARE 的 django middleware csrf CsrfViewMiddleware 既可
  • QT的信号与槽原理(经典)

    QT的信号与槽原理 经典 信号与 槽作为 QT的核心机制在 QT编程中有着广泛的应用 本文介绍了信号与 槽的一些基本概念 元对象工具以及在实际使用过程中应注意的一些问题 QT是一个跨平台的C GUI应用构架 它提供了丰富的窗口部件集 具有面
  • .faust勒索病毒数据怎么处理

    引言 近年来 随着科技的迅猛发展 网络安全问题愈发突出 特别是勒索病毒的威胁日益严峻 其中 Faust勒索病毒作为一种新型的恶意软件 引起了全球范围内的广泛关注和担忧 本文91数据恢复将对Faust勒索病毒进行深入分析 探讨其传播方式 危害
  • 利用Python制作本地Excel的查询与生成的程序

    前言 大家好 今天教大家利用Python制作本地Excel的查询与生成的程序 需求 制作一个程序 有一个简单的查询入口 实现Excel的查询与生成 实验步骤 1打开一个exe 弹出一个界面 2有一个查询 卡号 点击查询 3下方展示查询的结果
  • 何谓离散制造

    离散制造 Intermittent Discrete Manufacturing 产品的生产过程通常被分解成很多加工任务来完成 每项任务仅要求企业的一小部分能力和资源 企业一般将功能类似的设备按照空间和行政管理建成一些生产组织 部门 工段或
  • plasma桌面特效无效的解决办法

    前段时间重装了Arch Linux 用了好看的Plasma桌面 但是最近这几天桌面特效突然没有了 让我非常郁闷 于是乎我开始动手排查起来 由于前几天折腾显卡驱动 最后还是没折腾成功 所以我一开始将问题定位到显卡驱动上 然后谷歌了各个显卡驱动
  • Mysql锁机制详解

    Mysql锁 在多线程当中如果想保证数据的准确性是如何实现的呢 没错 通过同步实现 同步就相当于是加锁 加了锁以后有什么好处呢 当一个线程真正在操作数据的时候 其他线程只能等待 当一个线程执行完毕后 释放锁 其他线程才能进行操作 那么我们的
  • 在Ubuntu上编写一个开机自启动的Python脚本

    注意事项 如果脚本没有执行 首先应该考虑执行权限问题 查看脚本和相应的文件是否有执行权限 如果没有需要赋予执行权限 方法1 1 编写一个shell脚本文件 例如python auto sh 文件内容 2 编写start py文件 里面执行你
  • wps二维码根据一列自动生成_公文智能写作小程序上线了!一键生成公文!而且完全免费!...

    01 免费的公文写作AI 看过 秘书工作手记2 怎样写出好公文 的筒子们或许有察觉 石头对一切 投机取巧 的写材料方式 都抱有浓厚的兴趣 一切公文写作领域的工具创新 都会刺激我敏感的神经 比如 搜索引擎 资料库是我们写材料的常用工具 但这工
  • 金蝶kis专业版系统登录服务器,金蝶kis专业版怎么远程连接服务器

    金蝶kis专业版怎么远程连接服务器 内容精选 换一换 您可以借助报表服务制作各种各样的报表 无论是简单的还是复杂的报表 同时系统提供订阅功能方便用户对报表进行订阅 本文主要介绍RDS使用SSRS Reporting Services 报表服
  • 学习python第一天

    汉诺塔递归问题 python默认参数问题 参数一开始可以给一个默认值 如果想让一个函数能接受任意个参数 我们就可以定义一个可变参数 def fn args print args 可变参数的名字前面有个 号 我们可以传入0个 1个或多个参数给
  • gpuz怎么看显存颗粒

    gpuz可以帮助一些用户查看电脑的一切显卡参数 对于想要了解显卡的网友来说使用起来是非常方便的 不过有些网友是刚开始使用 还不知道gpuz怎么看显存颗粒 下面小编就教下大家gpuz查看显存颗粒的方法 首先 显存颗粒是显存的物理存储组成单元
  • 单独捕获dubbo异常

    一 定义一个rpc异常去继承自己自定义捕获的异常 public class RpcRuntimeException extends BadRequestException implements Serializable public Rpc
  • 用vite命令搭个react移动端项目,实现canvas碰撞效果(按需导入antd-mobile,pxtorem适配)

    前言 最近看见大家都在卷react源码 突然就心慌了 但是自己的操作水平还有待提高 现在看源码也需要循序渐进的 打算还是从写代码慢慢理解功能再去看源码 所以就尝试使用vite这个构建工具进行尝试构建一个react项目 因为是第一次使用 也是
  • matlab和C/C++混合编程--Mex

    最近的项目需要matlab和C的混合编程 经过一番努力终于完成了项目要解决的问题 现在就将Mex的一些经验总结一下 当然只是刚刚开始 以后随着学习的深入继续添加 首先讲讲写Mex的一些常规规定 然后我们会重点关注混合编程中最难解决数据的问题
  • 通过yarn提交作业到spark,运行一段时间后报错。

    加粗样式
  • QT控件之QComboBox(下拉框相关)

    QComboBox提供了下拉列表框的控件 下面简单介绍几个的方法和属性 1 addItems void addItem const QString text const QVariant userData QVariant void add
  • LUA中判断GameObject是否被Destory

    function IsNil uobj return uobj nil or uobj Equals nil end 你懂的 转载于 https www cnblogs com vsirWaiter p 7884249 html
  • vue学习01—安装vue-cli4

    1 安装node js 在官网下载并安装 2 安装vue cli3 如果安装过cli2 此处需要卸载 卸载 命令行输入 npm uninstall vue cli g 安装cli3 命令行输入 npm i g vue cli 在这一步遇到了
  • sharedPreferences

    sharedpreferences 共享参数 也是保存数据的一种方法 通常用于持久化数据 定期更新保存数据 类似ajax的定时刷新 示例代码 主要来源于黑马教程 如下 import java util Timer import java u