Java 从另一个包访问您的主要活动

Java 从另一个包访问您的主要活动,java,android,eclipse,libgdx,main-activity,Java,Android,Eclipse,Libgdx,Main Activity,我正在使用libGDX。创建了一个项目,有两个包,分别为appName,appName android。我的代码在appName中,但是MainActivity.java在appName android包中。我在MainActivity中设置了admob广告,但不希望它始终可见 问题是,如何编辑另一个包中的adView.VISIBLE?还是有可能?如何从appName包中的类访问MainActivity.java(在appName android包中) 提前感谢。当你使用这些工具时,不幸的是,你

我正在使用libGDX。创建了一个项目,有两个包,分别为appNameappName android。我的代码在appName中,但是MainActivity.java在appName android包中。我在MainActivity中设置了admob广告,但不希望它始终可见

问题是,如何编辑另一个包中的adView.VISIBLE?还是有可能?如何从appName包中的类访问MainActivity.java(在appName android包中)


提前感谢。

当你使用这些工具时,不幸的是,你无法改变某些东西

没有办法改变android处理访问主软件包的方式。您可以创建静态方法来访问一些没有实例的代码,但我真的认为这不是一个好主意

从独立于平台的通用代码中访问特定于平台的代码(如Android adMob库)的标准方法(在libGDX中)是创建一个通用代码可以使用的接口,并在该接口的实现中实现特定于平台的位

因此,创建
公共接口AdControlInterface
,该接口包含一个类似
hideAds
或任何您想要的方法。让appName android包创建该接口的特定于android的实现,并将其传递到appName包中(通过
ApplicationListener
子类中的构造函数)


这里有一个关于libGDX中AdMob的教程,介绍了这个问题(请参见
IActivityRequestHandler
界面)和其他一些AdMob集成问题:

您应该发布一些代码,以使问题更加清楚。您所描述的是一个糟糕设计的迹象,但目前没有足够的信息来解决问题。但我看不出应该发送哪些代码。因为问题不在于“我错在哪里”。这是libGDX的标准构造。如果您使用gdx-setup-ui.jar创建一个项目,它会创建像project、project android、project desktop和project html这样的包。你在project中编写代码,它会为所有平台创建应用程序。我之前看过本教程,但在你回答之后,我看得更仔细了。是的,它展示了(至少给了我们灵感)有关解决方案的一些东西。非常感谢。