R.xxx.xxx资源ID是否通过版本是静态的?

aho*_*der 4 android persistence

如果我要将一个字符串资源id存储在数据库中,我是否可以期望资源ID仍然指向我所需的字符串,当我将它拉回到该行的几个版本时?

示例案例:

  • 存储recource Id 0x7f060003,假设它指向字符串"我是一个愉快的字符串!" 一段不确定的时间.

  • 时间到了,我需要资源,但X版本已经通过,资源ID仍然会指向"我是一个愉快的字符串!"

Nou*_*MRI 18

请改用getResources().getIdentifier().这样,您可以按名称检索您的资源,即使其ID已更改.这是一个例子:

int resID = getResources().getIdentifier("nameofthedrawable", "drawable", "com.your.project");
Run Code Online (Sandbox Code Playgroud)

然后,您可以在数据库中仅保存资源的名称,稍后从数据库中检索资源.

有关详细信息,请参阅此链接.


Blu*_*ell 5

当您说 X 版本已通过时,您的意思是您更改了源代码吗?并更新了apk?

R id 整数是在编译时创建的。因此,一旦构建,在您的应用程序中保持不变。

但是,如果您添加新的布局/id/drawable,您的 ID将会改变。