我在Firebase中有一个数据,例如:
-Moon1
sm_1 : "Titan"
-Moon2
sm_2 : "Europa"
-Moon3
sm_3 : "Triton"
-Moon4
sm_4 : "Io"
我的strings.xml
文件如下所示
<string name="sm_1">/*Data from firebase*/</string>
<string name="sm_2">/*Data from firebase*/</string>
<string name="sm_3">/*Data from firebase*/</string>
<string name="sm_4">/*Data from firebase*/</string>
我希望字符串sm_1
具有数据Titan
,sm_2
= Europa
,同样。我能够从Firebase检索数据并将其分配给Listview
。
但是如何分配给strings.xml
中的字符串?
答案 0 :(得分:0)
我相当确定您不能在运行时创建字符串资源,因为当您捆绑项目时,它们会被编译到apk中。您正在考虑的是从Firebase保留数据,这可以通过多种方式来完成。
您可以保存instance state,创建Room database,SQL database,甚至使用shared preferences。但是,由于您似乎已经建立了Firebase数据库,因此可以始终使用它。
答案 1 :(得分:0)
实际上可以通过遵循代码来实现,但是,这不是运行时的好习惯。相反,请尝试将Object.prototype.modify = function (path,value){
let a = Function("object","path","value","object"+path+"=value");
a(this,path,value)
}
var a = {b: {c: {d: 1}}};
var b = {b: {c: {d: [1,[10,20,30],3,4,5]}}};
a.modify(".b.c.d", 3)//<-- change value
b.modify(".b.c.d[1][0]", "new Value")//<-- change value
console.log(a)
console.log(b.b.c)
保存在变量 中,然后将数据设置为strings
或其他。
在您的adapter
中:
Strings.xml
在<string name="sm_1">%1$s</string>
-Java
端:
Kotlin