从Delphi访问Android的SharedPreferences类

从Delphi访问Android的SharedPreferences类,第1张

概述我刚刚开始使用Delphi XE5的 Android开发路径,并且我正在尝试构建一个简单的应用程序,它需要能够持久保存一些输入的信息(配置). 我已经发现,Android类SharedPreferences可能是最简单的方法,但我无法弄清楚如何从Delphi XE5 FMX Mobile访问这个类. 我试过在帮助中搜索“SharedPreferences”,但它什么也没有返回.另一方面,搜索“共享 我刚刚开始使用Delphi XE5的 Android开发路径,并且我正在尝试构建一个简单的应用程序,它需要能够持久保存一些输入的信息(配置).

我已经发现,AndroID类SharedPreferences可能是最简单的方法,但我无法弄清楚如何从Delphi XE5 FMX Mobile访问这个类.

我试过在帮助中搜索“SharedPreferences”,但它什么也没有返回.另一方面,搜索“共享偏好”给了我太多.

解决方法 简而言之,将所需的API单元添加到uses子句中 – 在您的情况下,关键的是AndroIDAPI.Jni.JavaTypes,AndroIDAPI.Jni.App和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后代,它包装了SharedPreferences API – 请看这里获取信息:

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

在将API映射到TCustomInifile时,我发现的一个小问题是SharedPreferences键是强类型的,并且似乎没有办法预先找出给定键具有什么类型(TCustomInifile中的键,相反,是弱类型的).因此,为了阅读,我使用getAll方法将所有键和值作为Map / JMap(换言之,Java字典对象)进行检索,并从那里读取单个键.

总结

以上是内存溢出为你收集整理的从Delphi访问Android的SharedPreferences类全部内容,希望文章能够帮你解决从Delphi访问Android的SharedPreferences类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存