Android - 如何在代码中设置首选项

2023-12-25

我有一个 Android 应用程序,其中我的首选项位于 XML 文件中,运行良好。我现在想使用代码设置其中一个首选项,而不是显示整个首选项屏幕,我将如何执行此操作?


我假设您所指的首选项是指应用程序的首选项,而不是 Android 手机设置。

要存储应用程序运行之间的首选项,您需要执行以下操作

  1. 创建一个 SharedPreferences 对象

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    字符串 n 标识您的首选项,第二个参数是访问它们的模式

  2. 实例化编辑器对象

    SharedPreferences.Editor editor = settings.edit();
    

    注意:不要尝试settings.editor.edit(),这不会创建持久对象,并且下面的代码将不起作用

  3. 将您的偏好写入缓冲区

    editor.put...(String, value)
    

    put函数有很多,putString、putBoolean等。 String是key(“version”,“good run”),value是值(“1.5.2”,true)

  4. 冲洗缓冲区

    editor.commit();
    

    这实际上会写出您的偏好。如果您的应用程序在此行之前崩溃,则不会写入首选项。还有一个已记录的错误:commit() 应该返回一个指示成功或失败的布尔值。最后我检查它总是返回 false。

这些首选项将存储在手机上,并且只能由您的应用程序访问。

更多文档是here http://developer.android.com/guide/topics/data/data-storage.html

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

Android - 如何在代码中设置首选项 的相关文章

  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • 如何在 Android 中更改 Drawable 的颜色?

    我正在开发一个 Android 应用程序 并且我有一个从源图像加载的可绘制对象 在此图像上 我想将所有白色像素转换为不同的颜色 例如蓝色 然后缓存生成的 Drawable 对象 以便稍后使用它 举例来说 假设我有一个 20x20 PNG 文
  • 如何使用 gradle 从 3 个子模块构建 1 个 jar

    I have 安卓工作室3 gradle 4 1 梯度工具3 classpath com android tools build gradle 3 0 1 当我有一个模块并使用 gradle 工具 2 时 我使用了 task makeJar
  • 如何在应用程序关闭时在 Android 通知中显示操作按钮?

    我有一个安卓应用程序 对于通知 我们必须显示一些操作按钮 当应用程序打开时 我们可以自由地构建通知并显示操作按钮 但是当应用程序关闭时 通知会在 Android 的通知托盘中收到 应用程序开发人员无法控制构建用户界面和操作按钮 我们现在如何
  • Android 应用程序安装失败:包 com.my.app 在条目 AndroidManifest.xml 处没有证书

    在 Android Studio 中 我生成了带有密钥库等的签名 APK 将 APK 安装到设备上时失败 并显示 无法安装应用程序 并且在 Android Monitor 中我看到以下行 Package com my app has no
  • 当满足条件时,如何以编程方式更改 ImageButton src 目标?

    我有一个学校项目 我正在尝试开发一个手电筒应用程序 对于开 关 ImageButton 我想要 4 个自定义图像 如果手电筒关闭 turn on png 默认 turn on pressing png 按下状态 true 如果手电筒打开 t
  • 如何通过我的活动在 Android 中设置铃声?

    我正在尝试找到一种方法来通过 Android 活动中的代码设置新的默认铃声 我已经将铃声下载到bytearray 最后 我设法将默认铃声设置为我下载的铃声 下面不包含下载代码 仅包含将其设置为默认铃声所需的代码 File k new Fil
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • 需要 Android webview window.open() 和 window.close() 的信息

    我正在开发一个安卓应用程序 这是我网站的 WebView 该网站包含一个弹出按钮 单击该按钮后 将打开一个新窗口并显示内容 该链接可以来自外部站点 然而 当我实现此操作时 新选项卡正在打开 之后它会弹出以打开浏览器 尽管在 Web 视图中打
  • ExpandableListview OnGroupClickListener 未触发

    我正在关注这个 以编程方式折叠 ExpandableListView 中的组 https stackoverflow com questions 4314777 programmatically collapse a group in ex
  • 在新的 intel x86 android 模拟器中访问 google api

    我只是尝试在新的 x86 android 模拟器中运行我公司的应用程序 但是我们的应用程序依赖于 google 地图 API 而这在 google 随 android sdk 版本 17 提供的 x86 系统映像中不可用 我的直觉告诉我答案
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 在android中,将相机预览流到视图上

    我想将 Android 相机的相机预览流式传输到视图上 目的是随后使用 onDraw 将各种内容添加到视图中 我不需要随时实际捕捉图像 它不必是最高质量或每秒最大数量的帧 有谁知道如何做到这一点 将其添加到您的 xml 中
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • Android 中的库可以有自己的意图过滤器吗?

    我想开发一个可以包含在其他 Android 应用程序中的库来拦截某些类型的意图 是否可以 我创建了一个库和一个测试项目 两者都有自己的AndroidManifest xml文件 在库的清单中 我为操作 TEST 定义了一个意图过滤器 但是
  • onTaskRemoved() 在华为和小米设备中没有被调用

    我一直在使用onTaskRemoved 服务中的方法 用于检测应用程序何时通过滑动从设备最近列表中删除 我执行一些日志记录和发生这种情况时需要执行的一些其他操作 它工作完美 然后我在运行Android 6 0的华为设备上检查了这个方法 该方
  • 离子初始加载时间

    我正在使用 Ionic 构建一个简单的应用程序 但我的应用程序在冷启动时的初始加载时间方面存在性能问题 这是我所做的 collection repeat 代替带有 track by 的 ng repeat 原生滚动 overflow scr
  • 如何更改操作栏背景和文本颜色

    我正在使用本教程中的导航抽屉 http www androidhive info 2013 11 android sliding menu using navigation drawer http www androidhive info
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像
  • LifeCycleAware Fragment 中的片段生命周期事件

    我有一个生命周期感知片段和一个LifecycleObserver class public class MyFragment extends Fragment Override public void onCreate Nullable B

随机推荐

  • iOS 共享扩展关闭键盘

    我正在为我的应用程序实现一个共享扩展 到目前为止 一切都很顺利 除了我似乎无法关闭使用默认布局 故事板自动打开的键盘 我保留默认设计 布局 SLComposeServiceViewController 其中包括预览图像和 UITextvie
  • 无法读取配置节“connectionStrings”,因为它缺少节声明

    我正在尝试将我的网页 c 移动到 IIS 7 5 服务器 我读到我需要将 WEB CONFIG 放在 WEB CONFIG 中才能实现与 sql server 2008 的连接 我已经这么做了 这是我的网络配置
  • 让 arg 在 Lua 5.2 中的 varag 函数中工作(集成在 Delphi 中)

    当使用Lua 5 2 API时 下面的代码打印 nil function debug szName print type arg end debug s 1 2 3 4 但这段代码在使用 Lua 5 1 时确实有效 并打印 table 如果
  • 暂时禁用我的 Google App Engine 应用程序以便我可以执行架构迁移的推荐方法是什么?

    我想禁止用户访问我的应用程序 以便我可以执行架构迁移 我研究了一些可能性并发现了可能的缺点 禁用数据存储区写入 我宁愿将整个应用程序关闭 以便人们看不到任何错误等 此外 我认为禁用写入将阻止我执行迁移 禁用应用程序 我不清楚这是否只会为我的
  • 将 SSL 与 SQLAlchemy 结合使用

    我最近更改了我的项目以使用 SQLAlchemy 并且我的项目运行良好 它使用了外部 MySQL 服务器 现在我尝试使用具有 SSL CA 的不同 MySQL 服务器 但它无法连接 它确实使用 MySQL Workbench 连接 所以证书
  • 尝试使用包 googlesheets4 将 R 连接到 Googlesheet 时出错:无法获取 Google 凭据

    我在尝试将 R 与 Googlesheet 包 googlesheets4 连接时遇到问题 错误 无法获取 Google 凭据 您是否在运行 googlesheets4 非交互式会话 考虑 gs4 deauth 以防止 尝试获取凭据 称呼g
  • “npm run dev”有效,但“next dev”无效

    我第一次尝试下一步 与npx create next app 但我没有让脚本工作 npm run dev工作正常 但是next dev输出zsh command not found next 为什么是这样 我使用的是 macOS 12 5
  • 加载本机库/缺少方法时出现问题:java.library.path 中没有 ttJdbcCS

    我在将 timesten 客户端连接到服务器时遇到一个问题我得到的 SQL 异常粘贴在下面 加载本机库 缺少方法时出现问题 java library path 中没有 ttJdbcCS 我正在使用 MAC OS X 10 7 2 我的 ti
  • Python:使用 __import__ 时执行相对导入?

    以下是本次测试中的文件 main py app init py master py plugin init py p1 py p2 py 我们的想法是拥有一个具有插件功能的应用程序 新的 py 或 pyc 文件可以放入遵循我的 API 的插
  • 如何设计此解决方案来应对来自 Algoexpert.io 的不可施工变更挑战

    我正在解决 algoexpert io 编码挑战 但无法理解标题为 的问题之一的建议解决方案不可施工的改变 这是挑战问题 给定一个正整数数组 表示您的硬币的价值 拥有 编写一个返回最小变化量的函数 最低金额 您cannot创造 给定的硬币可
  • 符号作为变量的值为 void: dired-mode-map

    我正在尝试重新映射 dired 中的一些键 如下所示 add hook dired mode hook lambda require dired define key dired mode map kbd M o nil define ke
  • 获取 Android ProgressBar 中 secondaryProgress 的宽度

    我有一个带有文本的进度条 其中我已经重写了 onDraw 如下所示 Override protected synchronized void onDraw Canvas canvas super onDraw canvas Paint te
  • 两个数据库之间同步

    我有一个也有 Web 界面的应用程序 要求之一是即使没有可用的互联网连接也能够在该应用程序上运行 这些数据库之间是否需要同步 这些数据库应该有相当大的磁盘空间 如果有这样的需求应该怎么做呢 我应该使用什么数据库 目标操作系统是Windows
  • Highcharts 十字准线,轴上带有标签

    是否可以使 highcharts 十字准线在单独标签中的轴上显示实际值 API 中的常规十字线示例不会执行此操作 如果我设置 tooltip crosshairs true true 它没有做我需要的事情 我需要的图表如下所示 这是在 Hi
  • MySQL Looped Join如何测试结果是否完整?

    情况 我有一个 mysql 目录表 每个目录都有一个父目录 存储为parentID 直到根目录的parentID为0为止 E g rowID 1 name Dir1 parentID 0 root directory rowID 2 nam
  • 有什么方法可以预测会话超时吗?

    有没有办法 捕获 会话超时事件 以便在 HttpSession 失效之前检索数据 我们正在实现 Filter 接口 并且在 doFilter 方法中 当会话超时时 我们在登录时存储在会话对象中的用户为 null 提前致谢 您应该能够注册Ht
  • iOS 提交问题与应用内购买

    我已经上传了包含两次应用内购买的应用程序 4 天后 我收到了此消息和 iTunes Connect 状态 您的应用内购买已被退回 您必须修改或删除突出显示的项目 两项应用内购买均以警告标志突出显示 并表示开发人员需要采取行动 关于问题是什么
  • 如何命名构造函数参数和成员变量?

    我在命名类的内部变量时不使用前缀 我知道有些这样做 但我不会开始 你为什么 辩论 我只是更喜欢这样 问题是有时在构造函数中传递相同的参数 我最终对如何命名它们感到困惑 例如 public class SampleClass private
  • 在 SignalR 中序列化/反序列化派生对象

    我将 SignalR 1 1 与 NET 客户端一起使用 我的集线器中有一个方法 它接受 BaseMessage 类的对象并将其广播给所有客户端 public void SendMessage BaseMessage message Cli
  • Android - 如何在代码中设置首选项

    我有一个 Android 应用程序 其中我的首选项位于 XML 文件中 运行良好 我现在想使用代码设置其中一个首选项 而不是显示整个首选项屏幕 我将如何执行此操作 我假设您所指的首选项是指应用程序的首选项 而不是 Android 手机设置