首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中处理核心项目和从中派生的多个项目

在Android中处理核心项目和从中派生的多个项目
EN

Stack Overflow用户
提问于 2012-03-22 18:13:55
回答 3查看 172关注 0票数 1

我已经四处搜寻,找到了一些东西,但我仍然不确定我完全理解,所以我要求你澄清。

我需要的是:

  • 有一个具有特定功能的项目:询问web服务、显示不同视图的结果--
  • 有一个与第一个项目完全相同的第二个、第三个和第四个项目,但只有不同的图形元素,如splash屏幕图像、图标、名称、包名。

因此,我有带有活动和功能的ProjectCore。Project1有一个汽车图标和汽车图像为闪屏。带有飞机图标和飞机图像的Project2。差不多吧。每个项目都有一个常量为‘’appId,appName,appServerURL‘的类.所有的web服务调用、数据显示都在Core中,因为所有项目都是相同的,只有从常量类读取。

我在想这种方法

  1. 使ProjectCore成为一个库项目,其包为com.domain.core和虚拟图像
  2. Make Project1,在其中添加对ProjectCore的引用,并在com.domain.code.project1和资源文件夹中添加对ProjectCore的引用,将与核心项目
  3. Make Project2中相同名称的图像按照与project1

相同的原则放置

这种做法会有效吗?

谢谢。

,稍后编辑。,我已经尝试过了,如前所述。例如,在核心项目中,我绘制了一个名为splash.png的文件。在Project1 1和Project1 2的可绘制文件夹中,我将spash.png文件与其他图像放在一起。这个很好用。在我的手机上运行Project1和Project2,用自己的图像启动每个应用程序。到目前一切尚好。

然后,由于我需要在我的应用程序中使用不同的常量,所以我进入了Core库项目并添加了:

代码语言:javascript
复制
public class C {
    public static String SomeConstant = "Project core!";
}

问题来了,我需要在Project1和Project2之间有不同的常量值。因为在核心项目中,类例如在com.domain.core.utils中.我不能在Project1和Project2中添加相同的包。如何添加类,以便更新它们的值,并在每个项目中使用particlar值?

代码语言:javascript
复制
public class C {
    public static String SomeConstant = "Project 1 constant!";
}

public class C {
    public static String SomeConstant = "Project 2 constant!";
}

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-23 10:40:22

您希望在Library项目中创建功能,然后将所有品牌/OEM/3 3rdParty项目扩展到此,必要时覆盖图像和字符串资源。

当您需要使用“常量”时,您应该让代码中的单个“运行一次”部分(例如启动屏幕)从资源文件中加载这些字符串:

代码语言:javascript
复制
public static final String CONSTANT_ONE;

    public void onCreate() { CONSTANT_ONE = getResources().getString(R.String.CONSTANT_ONE); }

编辑

我不确定在onCreate()上初始化最终值将如何执行。如果final不能很好地工作,并且您担心在程序执行期间更改变量,那么就让变量private (所以只有这个类可以分配给它),然后创建一个public static String getConstantOne()函数。

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 19:26:35

是。库项目对此非常理想,尤其是在资源不同的情况下。我用了你成功描述的方法.

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 19:35:14

是的,应该可以用。我做了一些类似的事情,我发现偶尔您可能会遇到一些情况,您希望从库项目中调用应用程序项目。在这些情况下,我使用了在库项目中定义的接口/抽象类,但在应用程序项目中实现了.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9828105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档