2012-12-18 34 views
2

如何在运行时更改R.string.app_name?如何在运行时更改R.string.some_variable?

我从清单文件中找出我的Android应用程序的版本。现在我想从res文件夹中得到这个字符串 R.string.app_name。我想在运行时将这个app_name的版本附加到我的应用程序的版本中。

我们是否允许在Android中这样做?

+1

由于字符串是静态的,你的应用程序的版本也是静态的,为什么需要在运行时 –

+0

资源文件做是只读的。 –

回答

3

,这是不可能的,因为所有R. 资源在您的R.java文件中定义为常量。稍后,这些不会由Android进行编辑。

+0

好吧,明白了。谢谢。 – Master

1

有一件事你必须在这里理解的是,当你提供一个数据作为一个资源,它不能在运行时修改。例如,绘图文件夹中的绘图不能在运行时修改。准确地说,“res”文件夹不能以编程方式修改。

这也适用于Strings.xml,即“Values”文件夹。如果您想要一个必须在运行时修改的字符串,请创建一个单独的类并将您的字符串放置在此类中并在运行时访问。这是我找到的最好的解决方案。

如果你想存储在持久性方式的值,看看SharedPreferences

+0

好的,谢谢。但我需要根据我的Android应用程序的Manifest文件版本更改应用程序的名称。我不想硬编码它。 但在其他情况下,我可以绝对使用新班级为我保留字符串,以便在运行时更改。 – Master