1

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

我还希望每个包装器能够影响各种布尔标志的值,例如include_advertsor allow_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 无法解决错误。可以使这个 strings.xml 的东西起作用吗?还是我的计划从一开始就存在根本缺陷?

4

1 回答 1

1

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

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

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

希望这是有道理的。

编辑:顺便说一句,您可以像这样引用布尔值:

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

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

于 2013-07-15T14:51:43.980 回答