android - 如何从非 Activity 类启动 Activity?

标签 android android-activity android-intent

我有一个显示一些 OverlayItems 的 map View Activity 。例如,在叠加层的 onTap 方法中,我想触发一个新 Activity ,将这张叠加层照片显示为全屏。

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

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

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

当我向我的主要 Activity 添加一个方法时,比如说 startFullscreen:

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

我无法调用 getApplicationContext()startActivity(),因为我处于静态上下文中。但是我需要静态方法在 MainView.startFullscreen() 等 Overlay 类中调用它。

简单地说:如何从非 Activity 类启动 Activity?

最佳答案

一旦你在 onTap() 中获得了上下文,你也可以这样做:

Intent myIntent = new Intent(mContext, theNewActivity.class);
mContext.startActivity(myIntent);

关于android - 如何从非 Activity 类启动 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298225/

相关文章:

Android图像编辑器 Intent : retrieving saved file location

android - bundle.getString() 返回空值

android - 如何通过 CURL 向所有设备发送 Firebase 通知?

android - Cordova 文字转语音

android - 如何自动将事件添加到日历?

android - 单击通知时更新 Activity

android - 获取值以在 Android 应用程序中以不同语言显示 - 本地化

android - 如何将图标添加到首选项

android - Google Analytics 在 Android 应用程序中显示 iPhone

android - 如何将类对象传递给 Activity