4

我正在使用一个项目 A 和一个库项目来开发我的 Android 应用程序。这两个项目都有活动。如果我目前在项目 A 中,那么只需导入即可轻松启动库项目中的活动。但是,如果我来自图书馆项目中的活动,我不确定如何在项目 A 中启动活动。我正在尝试使库项目独立于项目 A 的包名称,因为我将它用于多个应用程序。关于如何做到这一点的任何想法?谢谢。

4

4 回答 4

4

有几种可能的解决方案。

最好的办法是在清单条目中为您希望其他项目可以访问的活动注册一个意图过滤器。这里有一个关于意图过滤器的很棒的教程。

另一种选择是将一个类传递给库项目,并使用Intent (Context packageContext, Class cls)构造函数来创建触发和启动活动的意图。然而,使用意图过滤器将是一种更好的实践和学习体验。

祝你好运!

于 2012-08-20T14:43:56.657 回答
3

我相信这是最简单的答案:您需要一个存在于库中的对象,您可以在项目中对其进行扩展。

想象一下,您的图书馆有一个您的 ProjectApplication 扩展的 LibraryApplication。LibraryActivity 可以调用:

((LibraryApplication)getApplication()).startNewActivity(this, "goHome")

您的 ProjectApplication 实现了这个新方法:

public void startNewActivity(Context context, String action) {
    if("goHome".equals(action)) {
        startActivity(context, ProjectHomeActivity.class);
    }
}
于 2012-08-20T14:50:13.280 回答
1

您可以将项目添加为外部库。你也可以使用 maven 来做这种事情。

于 2012-08-20T14:44:59.293 回答
0

从一个简单而好的答案

try {
   startActivity(new Intent(this, Class.forName("com.package.HomeActivity")));
 } catch (ClassNotFoundException e) {
    e.printStackTrace();
 }

也可以通过这个答案,使用动作。

于 2018-09-07T07:16:32.610 回答