【问题标题】:how do i programatically access main activity from surfaceview to remove adView我如何以编程方式从surfaceview访问主要活动以删除adView
【发布时间】:2013-09-10 15:36:58
【问题描述】:

我的主要活动调用了我的 Surfaceview 游戏,设置了一个添加了 adview 和 surfaceview 的布局(最初我在必须为横幅广告之前根本没有使用布局)。但是我无法从surfaceview访问主要活动来更改布局,因此一旦游戏开始,它就不包括adview。因此,我不得不不断地打开横幅。试图杀死广告仍然会留下空白横幅。有谁知道如何从surfaceview访问主要活动功能。

我在主活动中创建了一个removead() 函数来定义一个没有adView 的新上下文视图,但我无法访问它。

context,主要活动,在创建时传递给 Surfaceview。我试过了:

context.removead();
this.getContext().removead();
((Activity) this.getContext()).removead();
ViewGroup vg = (ViewGroup)(
this.getParent());
vg.removeView(adView);

【问题讨论】:

    标签: surfaceview adview main-activity


    【解决方案1】:

    我最终放弃了直接从surfaceView 控制adAiew 的尝试,而是在主Activity 中创建一个处理程序,并从创建的主Activity 的surfaceView 向它发送消息。然后,处理程序根据发送的消息向 adAiew 调用 VISIBLE 或 GONE。

    【讨论】:

    • 另一个想法是使用事件总线实现。这样您就可以发布消息并收听消息。 EventBus 易于使用且受欢迎,但您的解决方案或多或少与使用 BroadcastReceiver 的效果相同,因为 Android 是一个事件驱动模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多