android - 库源文件应该如何引用其父项目中的字符串资源?

标签 android eclipse

我刚刚将我的游戏应用程序制作成一个库,这样我就可以将它合并到各种“包装器”项目中,每个项目都有自己的 list 文件。这样我就可以轻松维护各种不同的版本,例如免费、付费、替代市场等。

我还希望每个包装器能够影响各种 bool 标志的值,例如 include_advertsallow_feature_x。我认为实现此目的的一个好方法(如果这是一个愚蠢的想法,请纠正我)是让每个包装器项目在其自己的 strings.xml 中定义自己的一组字符串。所以它可能有这样的东西:

<string name="allow_feature_x">true</string>

但现在我在从库中获取这些字符串时遇到了问题。

我试过这个:

boolean allow_feature_x = my_str2bool(getString(R.string.allow_feature_x));

但我得到一个 allow_feature_x cannot be resolve 错误。 这个 strings.xml 东西可以工作吗?或者我的计划从一开始就存在根本性缺陷?

最佳答案

这正是我为我的许多项目所做的。

只需确保您的库项目中定义了所有默认字符串集,否则您将无法引用它们,因为库不知道“父项”。

然后在您的“父”项目中覆盖它们。你只需要覆盖那些与默认不同的,否则它会从库项目中取值。

希望这是有道理的。

编辑:顺便说一下,您可以像这样引用 bool 值:

<bool name="allow_feature_x">true</bool>

然后访问 getResources().getBoolean(R.bool.allow_feature_x);

关于android - 库源文件应该如何引用其父项目中的字符串资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657066/

相关文章:

java - 如何使我的 while() 循环返回到 if() 语句?

java - 如何创建本地存储库以使用 Eclipse?

android - AVD 在 Windows 8.1 上崩溃

具有多种布局的Android ListView

java - 升级 android studio 破坏了我的 flutter build (macOS)

android - 如何使用 Retrofit 的输入流加载 SSL 证书

eclipse - Scala IDE 和 Apache Spark——在构建路径中发现不同的 Scala 库版本

Android EditText Style.xml 改变FOCUS EditText

Android hierarchyviewer 无法加载窗口数据

android - 哪些android sdk包需要安装,哪些不需要?是否需要安装所有版本的android API?