首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从非活动类启动活动?

如何从非活动类启动活动?
EN

Stack Overflow用户
提问于 2010-11-29 02:19:40
回答 4查看 106.5K关注 0票数 75

我有一个地图视图活动,其中显示了一些OverlayItems。例如,在overlay的onTap方法中,我想触发一个新的activity,将此overlay照片显示为全屏。

当我在overlay类中执行此操作时:

Intent intent = new Intent();
intent.setClass(getApplicationContext, FullscreenView.class);
startActivity(intent);

。。它找不到应用程序上下文,因为我不在活动的范围内。

当我将一个方法添加到我的主活动中时,假设是startFullscreen

public static void startFullscreen() {
    if (sCurrentPhoto != null) {
        Intent intent = new Intent();
        intent.setClass(getApplicationContext(), FullscreenView.class);
        startActivity(intent);          
    }
}

我不能调用getApplicationContext()startActivity(),因为我处于静态上下文中。但是,我需要静态方法在覆盖类(如MainView.startFullscreen() )中调用它。

简而言之:如何从非活动类启动活动?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-29 02:45:05

您的onTap覆盖将接收MapView,您可以从中获取Context

@Override
public boolean onTap(GeoPoint p, MapView mapView)
{
    // ...

    Intent intent = new Intent();
    intent.setClass(mapView.getContext(), FullscreenView.class);
    startActivity(intent);

    // ...
}
票数 42
EN

Stack Overflow用户

发布于 2011-04-17 22:28:34

在onTap()中获得上下文后,还可以执行以下操作:

Intent myIntent = new Intent(mContext, theNewActivity.class);
mContext.startActivity(myIntent);
票数 94
EN

Stack Overflow用户

发布于 2011-12-29 16:59:53

我不知道这是不是很好的做法,但是casting a Context object to an Activity object compiles fine.

试试这个:((Activity) mContext).startActivity(...)

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4298225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档