我正在为许多 Android 应用程序创建一个库项目。
这些应用程序都具有一些我希望包含在库项目中的通用功能,但库项目功能需要使用特定于应用程序的常量
所以我正在寻找一种方法来为库函数提供常量名称并允许每个应用程序定义它们
特定应用程序常量的示例以及如何在库项目中使用它
public class AppConstants {
public static final long APP_ID = 6;//Needs to be set for each app
}
public static long getCurrentAppId(Context context) {
return getLongPreference(context, CURRENT_APP_ID_KEY, AppConstants.APP_ID);
}
这只是需要为每个应用程序定义大量库函数的大约 60 个常量的一个示例
显然,我通常只会导入/包含项目特定的 app_constants.java 文件,但这在库项目文件中是不可能的,因为它没有关于特定应用程序的线索(正确的)
那么让每个特定应用程序覆盖常量的最佳方法是什么?
Update我花了很长时间来决定哪个最佳答案最适合我的需求(谢谢大家)最后我选择了 xml 解决方案。我不是特别喜欢它,因为它弄乱了我的应用程序资源,我确实认真考虑过使用界面解决方案,但 xml 解决方案确实工作得很好
选项1
在每个项目中扩展您的 AppConstants 类
更好的选择#2
使用 XML 资源定义常量
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="integer" name="app_id" format="integer">6</item>
</resources>
然后你可以通过以下方式检索它们
Context.getResources().getInteger(R.integer.app_id);
将 xml 文件添加到每个项目中的资源中,仅包含您需要的不同值
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)