从另一个项目中的一个项目调用一个类?

时间:2011-05-02 20:50:32

标签: android eclipse google-maps

我是eclipse和android开发的新手,并且需要以下帮助。我在Eclipse中使用android SDK构建了两个android项目:

  1. “ORF401 Project” - 针对Android 2.2平台
  2. “地图项目” - 定位Google API 2.2平台
  3. 我按照标准Hello World Google Maps for android tutorial指定的步骤操作,并在运行第二个项目时让Google地图显示在模拟器上。

    我在第一个项目中设置了一个菜单,其中一个选项是加载地图。但是,我不确定如何在此项目中加载地图,因为只能为每个项目指定一个构建目标,因此我无法将Google Maps API指定为(附加)构建目标。有没有办法从第一个项目中的第二个项目调用主.java类?我看到可以在项目属性下对第二个项目进行引用,但我不知道如何使用它。我在网上找到的一个可能的解决方案是在第一个项目中的switch case下添加以下代码:

    Intent intent = new Intent(this, {googleMap}.class);  
    startActivity(intent);
    

    我认为这需要在第一个项目中另外一个googleMap.java类以及另一个活动,但我无法让它工作。任何人都可以就我如何做到这一点提出建议吗?

    如果其中一个或两个项目的代码都有帮助,我很乐意发布它。感谢

2 个答案:

答案 0 :(得分:1)

项目的主要思想是每个应用程序有一个项目可以完成某些任务。 我假设您的应用程序需要对地图以及其他内容执行某些操作。没有必要分裂这些想法。将它们保存在一个项目中,因为它们构成了您开发的一个应用程序。

我建议的第一件事 - 仔细阅读有关活动和意图的内容。前往http://developer.android.com - 一切都清楚地解释了。 通过这一切清理完毕,您将看到制作一些按钮的重点,点击该按钮会打开一个带有您开发的地图功能的新屏幕。然后让你回去或做别的事情,比如打开一个新的屏幕,一个浏览器等等。

放弃尝试从另一个项目调用另一个项目:)这不是我认为你想做的事情。

只是为了确保我没有被误解 - 当然你可能想要有两个项目。但那些很可能会导致两个单独的应用程序。幸运的是,应用程序也可能通过意图,内容提供商或其他方式进行交互。如果您想发送邮件,只需看看联系人应用程序如何将您带到GMail应用程序。如果那是你想要达到的目的 - 仍然需要阅读有关意图。

编辑:
这是我在评论中提到的链接:
http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html
它解释了如何实现您想要的“额外目标”。

答案 1 :(得分:0)

有一些方法可以从另一个项目的一个项目中调用一个类,但这里存在更大的问题。第一个项目可以在任何Android设备上运行。但是,第二个需要Google Maps API。无论如何,您将无法调用它,因为除非您处于支持Google API的环境中,否则无法安装它。这样做没有任何好处,除非您在项目1中有其他功能,以便它可以在没有项目2的情况下存在。

我建议使用Intent方法,而不是试图破解一起允许你访问另一个类的东西。无论如何,尽管将这两者结合在一起似乎过于复杂且容易出错。我建议只需在项目1中嵌入映射功能并需要Google API。无论如何,大多数主流设备都支持它们。

如果您与两个具有不同构建目标的单独项目结合在一起,我建议您考虑使用BroadcastReceivers与您从应用程序1广播的自定义意图。我不相信{{由于类加载器问题,1}}将跨应用程序边界工作,但我可能错了。