是否可以在运行时手动切换字符串资源?

时间:2015-01-22 16:26:42

标签: android android-layout android-resources

首先让我来描述我的问题。我正在开发一个具有大量布局和字符串的大型Android应用程序(全部在strings.xml中)。已经制定了一项新要求,要求根据启动条件的不同,使一些字符串不同(想想" cat"用" dog"替换的所有实例)。此条件不依赖于设备的任何内容(区域设置,大小,分辨率等):它仅取决于业务逻辑中的某些内容。

最简单的方法是创建使用具有" cat"的字符串的所有布局文件的新副本,并在这些新的布局副本中使用具有" dog&#34的字符串;。但是,由于布局的数量以及基本上重复布局的未来维护问题,这并不完全可行。

我知道这不是一个讨论论坛,所以我有一个我想关注的方法。在我看来,问题与正常资源配置/区域设置密切相关,其中由于设备的属性而提供不同的资源。有没有办法让这个适合我的情况?差异是所需的配置仅在运行时已知,并且现有资源限定符没有意义(例如,我们可能会翻译成法语,所以我不想捎带它)。但我无法想象我的问题是独一无二的。

如果有另一种方法我应该告诉我,虽然我不想在讨论路线上走得太远,因为它对它不屑一顾。坦率地说,即使在这里问这个也可能有风险,但我不知道还能在哪里问它。

1 个答案:

答案 0 :(得分:0)

我可以考虑几个解决方案:

您可以在运行时将字符串设置为yourTextView.setText(R.string.any_string),其中包含:

1)A为您的业务逻辑提供一些资源字符串 2)A placeholder string

getResources().getString(R.string.tempale, "your value")

3)从Web服务中获取字符串(如果该位置