从 Delphi 访问 Android 的 SharedPreferences 类

2023-12-10

我刚刚开始使用 Delphi XE5 进行 Android 开发,并尝试构建一个简单的应用程序,该应用程序需要能够保留一些输入的信息(配置)。

我已经弄清楚了,Android 类共享首选项可能是最简单的方法,但我不知道如何从 Delphi XE5 FMX Mobile 访问此类。

我尝试在帮助中搜索“SharedPreferences”,但它什么也没返回。另一方面,搜索“共享首选项”给了我太多的信息。


简而言之,将所需的 API 单元添加到 use 子句中 - 您的案例中的关键是AndroidApi.Jni.JavaTypes, AndroidApi.Jni.App, and AndroidApi.Jni.GraphicsContentViewText, 和...一起FMX.Helpers.Android一些粘合代码 - 并像在 Java 中一样调用它。 Java 类被公开为带有 J 开头的接口类型;实际上,Android API 大量使用嵌套类,并且由于 Delphi 不支持嵌套接口类型,因此这些类将变为 ParentClassName_ChildClassName:

var
  Prefs: JSharedPreferences;
  Editor: JSharedPreferences_Editor;
  I: Integer;
  F: Single;
  S: string;
begin
  Prefs := SharedActivity.getPreferences(TJActivity.JavaClass.MODE_PRIVATE);
  Editor := Prefs.edit;
  Editor.putInt(StringToJString('MyIntKey'), 999);
  Editor.putFloat(StringToJString('MyFloatKey'), 123.456);
  Editor.putString(StringToJString('MyStrKey'), StringToJString('This is a test'));
  Editor.apply;
  I := Prefs.getInt(StringToJString('MyIntKey'), 0);
  F := Prefs.getFloat(StringToJString('MyFloatKey'), 0);
  S := Prefs.getString(StringToJString('MyIntKey'), StringToJString(''));

也就是说,我最近推出了一个简单的TCustomIniFile包裹的后代SharedPreferencesAPI - 请参阅此处了解信息:

http://delphihaven.wordpress.com/2013/09/12/a-few-xe5-lated-bits/

在将 API 映射到TCustomIniFile,我发现的一个小问题是事实SharedPreferences键是强类型的,并且似乎没有办法提前找出给定键的类型(键在TCustomIniFile,相反,是弱类型)。因此,为了阅读,我使用getAll方法检索所有键和值作为Map/JMap(换句话说,Java 字典对象)并从那里读取各个键。

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

从 Delphi 访问 Android 的 SharedPreferences 类 的相关文章

  • 在 Android 上生成 FileDescriptor 而不先打开文件

    在Android中 是否可以直接从字节数组生成FileDescriptor 而不必先打开文件 在 Android 2 2 中 我动态生成 MIDI 文件 然后使用 MediaPlayer 进行播放 我在下面包含了成功执行此操作的 Main
  • 在 ubuntu 中找不到 .android 文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在哪里可以找到 android在 Ubuntu 中 我想使用debug keystore 转到您的主文件夹并按 ctrl h 瞧
  • 处理 SavedInstances 并恢复活动

    基本上我的应用程序有 2 个活动 说 A 和 B A 启动 B Activity B 播放音乐并且还有通知 情况 1 当视图仍在活动 B 上时 我按主页按钮 然后单击通知 活动 B 将打开 其视图完好无损并播放音乐 因为在清单中我使用 an
  • 简单 XML 框架:ElementMap 中的对象具有“类似内联”的行为

    我正在尝试在 Android 上序列化自定义对象的 Hashmap 以获得如下 xml
  • 如何在 Android 中的 Chrome 或 Firefox 等特定浏览器的 Web 视图中加载应用程序

    我是 Android 新手 我正在做一个应用程序 我需要在平板电脑上的 Web 视图中加载现有的应用程序 在平板电脑中 当我使用 Web 视图加载应用程序时 我的应用程序将加载到默认浏览器中 如何在平板电脑上的 Web 视图中的特定浏览器
  • animation.start() 或animation.startNow() 不会立即开始动画

    我有一个奇怪的问题 有时应该淡出我的控件 ImageButton 的动画不会立即启动 我使用淡出动画来隐藏它 然后在 myListener 的末尾 onAnimationEnd 中 我将新资源作为按钮上的图像 我的应用程序代码中的某处 An
  • 在android Gridview中合并行和列

    我正在android中做一个图像查看页面 我需要在某些地方合并行 在某些地方合并列 我们可以在gridview中做到这一点吗 如果我们选择任何合并图像 则应选择整个图像视图 请任何人告诉我一个建议 提前致谢 Try 非对称网格视图 http
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • 如果未安装应用程序,深层链接将重定向到 Play 商店

    我在我的应用程序中使用深度链接的概念 我真正想要的是 当我共享我的应用程序中的链接时 它工作正常 它会转到我想在我的应用程序中打开的活动 但问题是当用户没有这个时应用程序此链接通过手机浏览器打开 显示错误 未找到 但如果未安装应用程序 我想
  • 改造将多个图像上传到单个密钥

    我正在使用 Retrofit 将图像上传到我的服务器 这里我需要为一个密钥上传多个图像 我已经尝试使用 Postman 网络客户端 它运行良好 这是一个屏幕截图 以下是请求的键值对 调查图像 文件1 文件2 文件3 属性图像 文件DRA j
  • webview 中的 android 移动 Twitter 页面无法打开?

    我正在尝试打开以 https 开头的 Twitter 页面webview在安卓中 但它没有打开 并且持续加载时出现黑屏 屏幕截图如下 Edit 在主网络视图中我有 Twitter 页面的链接https twitter com mytwitt
  • Android 上的 SQLite JDBC 驱动程序

    我正在尝试使用xerial sqlite jdbc在 Android 中管理我的数据库没有成功 我得到了java lang NoClassDefFoundError org sqlite SQLiteConnection异常 我已经导入了这
  • java.lang.AssertionError:CALL 'public final fun

    我正在尝试使用 jetPack Compose 制作一个项目 我拥有它工作所需的所有必要依赖项 但是当我运行我的应用程序时 它会抛出一个错误 我找不到解决方案 这是错误 java lang AssertionError CALL publi
  • 当类明显存在时,我收到 java.lang.NoClassDefFoundError

    当我尝试在运行时使用该库时 出现以下错误 java lang NoClassDefFoundError com google api client extensions android2 AndroidHttp 我已经将此库添加到我的项目中
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 以编程方式创建 FloatingActionButton(无需 xml)

    我很欣赏 Android 的 FloatingActionButton fab 功能 并希望在我的项目中的许多不同地方使用它们 现在 我有这样的东西 我有几个 xml 规范 除了 id 图标和 onclick 之外 所有这些规范都是相同的
  • 无法使用 Zxing Android 扫描 Code 128

    我已将 ZXing 条码阅读器集成到我的 Android 应用程序中 它可以扫描大部分代码 但我有一张电费单 它无法扫描 使用 Galaxy Ace 5 0MP 我认为问题是由于相机分辨率和焦点造成的 因为当我使用 Xperia SL 12
  • Recyclerview项目点击涟漪效果[重复]

    这个问题在这里已经有答案了 我正在尝试添加Ripple影响到RecyclerView的项目 我在网上查了一下 但找不到我需要的东西 我努力了android background归因于RecyclerView本身并将其设置为 android
  • PhoneGap Build Android 不显示闪屏

    这是我的 config xml 中与启动屏幕相关的代码
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说

随机推荐

  • 将解决方案文件夹添加到 Visual Studio 项目模板

    是否可以使用项目模板添加解决方案文件夹 如果它不是内置功能 是否可以为此创建自定义任务 这有点棘手 您无法使用简单的项目模板来做到这一点 项目模板只能在单个项目级别上运行 要实现更高级的逻辑 您需要实现向导扩展并在其中注册 vstempla
  • 标题大小写是一个包含一个或多个姓氏的字符串,同时处理带有撇号的姓名

    我想标准化用户提供的字符串 我希望姓名的第一个字母大写 如果他们输入了两个姓氏 则将名字和第二个名字大写 例如 如果有人输入 marriedname maidenname 它会将其转换为Marriedname Maidenname如果有两个
  • 关于根据年份生成年龄变量的思考

    多年来我一直试图创建一个虚拟变量 目前 我的数据有每个观察的出生日期和程序开始日期 我已经能够创建一个以天为单位测量个人年龄的变量 但我实际上正在寻找的是一个变量 age join date 它告诉我以下内容 Individual birt
  • Haskell:列表、数组、向量、序列

    我正在学习 Haskell 并阅读了几篇有关 Haskell 列表和 插入您的语言 数组的性能差异的文章 作为一名学习者 我显然只是使用列表 甚至没有考虑性能差异 我最近开始调查并发现 Haskell 中有许多可用的数据结构库 有人可以在不
  • URL 中 Hash(#) 的使用

    我想知道除了作为 URL 中的锚点之外 哈希还有其他用途吗 我在这里读到了它获取完整的 url 包括哈希后的查询字符串 客户端的状态信息是什么 请帮忙 哈希也可用于单页面应用程序 因此您可以使用哈希作为从一个页面导航到另一个页面的方式 而不
  • C# 使用 LINQ 选择行的最大 ID

    我有一个面包屑表 我想返回最近插入的行 在 SQL 中它将是MAX 函数 但不确定如何在 LINQ 中执行等效操作 基本上我想选择具有最高的行BreadCrumbID WHERE ProjectID 49 这是我现在的查询 它将选择所有行W
  • Java 中的并行计算 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何在 Java 中使用并行 或者我使用普通线程 阅读Java并发教程 创建多个线程来为您完成工作
  • Java中根据天数获取日期

    简单的问题 但令人惊讶的是谷歌对此几乎没有什么了解 我有number of days从今年1月1日开始 我怎样才能将其转换为date在Java中 你可以简单地使用SimpleDateFormat转换String to Date 图案D可以用
  • 如何将 int 转换为 NSString?

    我想转换一个int to a NSString在目标 C 中 我怎样才能做到这一点 基元可以转换为对象 表达 所以shortest方法就是转变int to NSNumber并选取字符串表示形式stringValue method NSStr
  • 泛型集合“无法实例化类型 ArrayList

    根据我读到的内容 我认为这是不可能的 但我想确定一下 我有课OpDTO和其他几个 DTO extends OpDTO 然后 我想要一种方法从这些子 DTO 的列表中仅提取某些元素 并在另一个列表中返回提取的元素 public List
  • komodo edit 7.1 在 php 模式下无法识别 html5 标签

    标题已经很说明性了 在 php 模式下 komodo edit 假定 html4 并在使用像文章 时间 部分这样的 html5 标签时引发错误 这可能会很麻烦 因为它可能会覆盖 php 错误 有没有办法来解决这个问题 也许找到了解决方案 首
  • 检测网页上的合成点击

    通过 Javascript 是否可以检测合成点击 不是由人类生成而是使用 JS 或其他自动化工具生成的点击 也许我们可以做这样的事情 document onmousedown function e if typeof e pageX und
  • Cocoapods pod 稳定构建设置

    有没有办法在中添加构建设置cocoapodspod 无需直接更改 Pods 项目或其他自动生成的内容 因此在之后它仍然会存在pod install 具体来说 我需要设置DISABLE MIXPANEL AB DESIGNER 1在 Mixp
  • Yii - “白屏死机”,调试技巧

    我有一个运行 Yii 应用程序的临时服务器 现在出现 死机白屏 我看不到屏幕上输出的任何内容 甚至 查看源代码 时的源代码 在本地相同的代码运行没有任何问题 任何人都可以建议一个在 Yii 应用程序中调试 死机白屏 的好例程吗 在 yii
  • asp.net 会员提供商 Guid userID

    我需要 我认为 获取当前登录的用户 ID 以便我可以更新使用此用户 ID 作为外键的表之一 问题是数据库中的userID与此不匹配 Guid currentUser Guid Membership GetUser ProviderUserK
  • 仅安装较新的框架时应用程序是否会运行

    我似乎找不到我的问题的答案 所以我只是在这里问 假设我有一个为 Net Framework 4 62 构建的应用程序 它可以在只安装了 4 7 的服务器上运行吗 当然除了一些旧的框架 或者我需要安装每个目标框架吗 NET Framework
  • 如何使用 CSS 透视将元素定位在正确的 3D 位置

    我正在尝试找到一种方法来在以给定角度放置的照片元素之上映射元素 笔记本电脑的照片就是一个很好的例子 我想在屏幕顶部映射一个元素 视频 图像或其他 例如循环播放视频等 这个任务看起来很简单 但我发现它非常棘手 因为我找不到如何通过变换 旋转
  • 标签为类别页面 Blogger 中的标题

    我有一个网站 可以在其中显示具有所有相同标签的帖子 有没有办法在显示具有相同标签的所有帖子时将标签作为标题 例如 关于https newsotuniverse blogspot ca search label astrophysicals有
  • Swift 中每次动画迭代后的延迟

    我有一个核心动画 repeatCount被设定为Float infinity 在动画的每次迭代之后 即 每次重复之后 我想要延迟 3 秒 我怎样才能实现这个目标 谢谢 您可以使用function像下面这样做你需要做的事情 func anim
  • 从 Delphi 访问 Android 的 SharedPreferences 类

    我刚刚开始使用 Delphi XE5 进行 Android 开发 并尝试构建一个简单的应用程序 该应用程序需要能够保留一些输入的信息 配置 我已经弄清楚了 Android 类共享首选项可能是最简单的方法 但我不知道如何从 Delphi XE