如何从Firebase检索数据并分配给Android Studio中strings.xml中的字符串

时间:2018-09-12 18:12:40

标签: java android firebase android-studio

我在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具有数据Titansm_2 = Europa,同样。我能够从Firebase检索数据并将其分配给Listview

但是如何分配给strings.xml中的字符串?

2 个答案:

答案 0 :(得分:0)

我相当确定您不能在运行时创建字符串资源,因为当您捆绑项目时,它们会被编译到apk中。您正在考虑的是从Firebase保留数据,这可以通过多种方式来完成。

您可以保存instance state,创建Room databaseSQL 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