jam*_*esc 13 android shared-libraries
我正在为许多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);
}
Run Code Online (Sandbox Code Playgroud)
这只是需要为每个应用程序为大量库函数定义的大约60个常量的一个示例
显然,我通常只会导入/包含项目特定的app_constants.java文件,但这在库项目文件中是不可能的,因为它没有得到关于特定应用程序的线索(这是正确的)
那么让每个特定应用程序覆盖常量的最佳方法是什么?
更新 我花了很长时间来决定哪些极好的答案我提供了最适合我的需求(谢谢大家)最后我选择了xml解决方案.我不是特别喜欢它,因为它混乱了我的应用程序资源,我认真考虑使用接口解决方案,但xml解决方案确实很好用
con*_*eur 20
选项#1在每个项目中扩展AppConstants类
更好的选项#2使用XML资源来定义常量
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="integer" name="app_id" format="integer">6</item>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后你可以通过它来检索它们
Context.getResources().getInteger(R.integer.app_id);
Run Code Online (Sandbox Code Playgroud)
将xml文件添加到每个项目的资源中,只需要您需要的值
| 归档时间: |
|
| 查看次数: |
8259 次 |
| 最近记录: |