我已经发现,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类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)