android文件覆盖吗,如何覆盖Android库项目中的类?

以下是我的情况:

我有一个图书馆项目和一个基于它的项目.现在在库中我有两个类A和B,其中A使用B.在使用库的项目中,我有另一个类B,它应该覆盖库中的类B.

但每次A级拨打电话时,它都会从图书馆的B级结束.

如何告诉Android我的项目中的B类应该从库中使用B类的INSTEAD?

解决方法:

这不适用于当前布局.您必须使用策略模式.在您的库中使用构造函数定义LibA​​,该构造函数在构造函数中获取类型为LibB的对象:

class LibA{

LibB b;

public LibA(LibB b)

this.b = b;

}

}

然后,您可以在项目中覆盖LibB,并使用扩展LibB的类创建LibA:

class ProjectB extends LibB{

}

LibA a = new LibA(new ProjectB());

回答Turbos问题:

您想从库中启动项目活动.然后将创建Intent的代码移动到您的Projects中,因为只有在您的项目中,您才知道要启动的Activity的类型或名称.

您在评论(here)中提到的解决方案通过猜测应该启动的Activity的名称在库项目中创建Intent.这没有什么不妥,但它不是一个优雅的解决方案.您只能启动遵循该特殊命名方案的活动.因此,您无法启动项目中可见的任意活动,例如来自其他库的活动,您无法更改类的名称.

要将Intent创建移动到库中,您可以使用策略,模板或工厂方法模式.有关与您的库设计相匹配的更多(创建)模式,请参阅Design Patterns on Wikipedia.

一个简单的解决方案是:

创建一个抽象的LibraryActiv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值