栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

最佳做法:扩展或覆盖Android库项目类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最佳做法:扩展或覆盖Android库项目类

库项目被引用为原始项目依赖项(基于源的机制),而不是已编译jar依赖项(基于已编译代码的库机制)。

@yorkw对于适用于Eclipse的ADT插件的最新版本不是这样, http://developer.android.com/sdk/eclipse-
adt.html

从版本17更改日志

新的构建功能添加了自动设置JAR依赖项的功能。/
libs文件夹中的所有.jar文件都将添加到构建配置中(类似于Ant构建系统的工作方式)。同样,库项目所需的.jar文件也会自动添加到依赖于那些库项目的项目中。(更多信息)

更多信息http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

在此之前,从库项目更新覆盖活动很容易,只需要排除该类即可。现在,该库作为jar文件包含在内,并且无法从jar依赖项中排除类文件。

编辑:

我从库jar覆盖/扩展Activity的解决方案:

我创建了一个简单的util类:

public class ActivityUtil {private static Class getActivityClass(Class clazz) {    // Check for extended activity    String extClassName = clazz.getName() + "Extended";    try {        Class extClass = Class.forName(extClassName);        return extClass;    } catch (ClassNotFoundException e) {        e.printStackTrace();        // Extended class is not found return base        return clazz;    }}public static Intent createIntent(Context context, Class clazz) {    Class activityClass = getActivityClass(clazz);    return new Intent(context, activityClass);}}

为了覆盖该库的“SampleActivity”类,它是一个依赖于该库的项目,请在同一包中的项目中创建一个名称为SampleActivityExtended的新类,并将新活动添加到您的AndroidManifest.xml中。

重要说明:所有引用覆盖活动的意图都应通过util类以以下方式创建:

Intent intent = ActivityUtil.createIntent(MainActivity.this, SampleActivity.class);...startActivity(intent);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号