slh*_*hck 71 android android-intent android-activity
我有一个地图视图活动,显示了一些OverlayItems.在onTap叠加方法中,我想触发一个新活动,例如,将此叠加照片显示为全屏.
当我在overlay类中执行此操作时:
Intent intent = new Intent();
intent.setClass(getApplicationContext, FullscreenView.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
..它无法找到应用程序上下文,因为我不在活动范围内.
当我向主要活动添加方法时,让我们说startFullscreen:
public static void startFullscreen() {
if (sCurrentPhoto != null) {
Intent intent = new Intent();
intent.setClass(getApplicationContext(), FullscreenView.class);
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
我不能打电话getApplicationContext()和startActivity(),因为我在一个静态的背景.我需要静态方法然后在Overlay类中调用它MainView.startFullscreen().
简单地说:如何从非Activity类启动Activity?
Exi*_*ile 88
一旦你在onTap()中获得了上下文,你也可以这样做:
Intent myIntent = new Intent(mContext, theNewActivity.class);
mContext.startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)
Dan*_*ien 39
您的onTap覆盖接收MapView您可以从中获取Context:
@Override
public boolean onTap(GeoPoint p, MapView mapView)
{
// ...
Intent intent = new Intent();
intent.setClass(mapView.getContext(), FullscreenView.class);
startActivity(intent);
// ...
}
Run Code Online (Sandbox Code Playgroud)
Som*_*ent 12
我不知道这是不是好习惯,但是 casting a Context object to an Activity object compiles fine.
试试这个: ((Activity) mContext).startActivity(...)
您可以context为您的应用程序定义一个ExampleContext将保存应用程序上下文的内容,然后使用它来实例化这样的活动:
var intent = new Intent(Application.ApplicationContext, typeof(Activity2));
intent.AddFlags(ActivityFlags.NewTask);
Application.ApplicationContext.StartActivity(intent);
Run Code Online (Sandbox Code Playgroud)
请记住,这段代码是在C#我使用MonoDroid时编写的,但我相信它非常相似Java.如何创建ApplicationContext这个线程的外观
这就是我创造的方式 Application Class
[Application]
public class Application : Android.App.Application, IApplication
{
public Application(IntPtr handle, JniHandleOwnership transfer) : base(handle, transfer)
{
}
public object MyObject { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98691 次 |
| 最近记录: |