我知道这个问题早些时候也被提出过,但没有人帮助过我。我想要做的是当用户点击谷歌地图上的标记时创建一个新活动。当用户单击AlertDialog的“确定”按钮时,将生成此标记。我创建了一个单独的类作为AlertDialogGenerator(它是一个非活动类)来创建alertDialog。现在,当我单击此标记时,我在logcat中得到此异常:
java.lang.NullPointerException
at android.app.Activity.startActivityForResult(Activity.java:3390)
at android.app.Activity.startActivityForResult(Activity.java:3351)
at .onMarkerClick(.java:190)
at com.google.android.gms.maps.GoogleMap$8.a(Unknown Source)
at com.google.android.gms.maps.internal.k$a.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:347)
at cni.a(SourceFile:84)
at maps.af.bj.a(Unknown Source)
at maps.ao.c.a(Unknown Source)
at maps.ao.n.c(Unknown Source)
at maps.ao.m.a(Unknown Source)
at maps.ao.an.b(Unknown Source)
at maps.ao.bc.onSingleTapConfirmed(Unknown Source)
at maps.br.g.onSingleTapConfirmed(Unknown Source)
at maps.br.i.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
我知道这个错误与上下文有关,但我不知道我必须在这里传递什么上下文...我几乎尝试了所有上下文但没有一个工作。以下是意图的代码段。
Intent intent = new Intent(contextx,InfoActivity.class);
startActivityForResult(intent, 0);
以下是我调用startActivityForResult的代码:
public class Available extends Activity implements
OnMarkerClickListener {
private Context contextx;
public Available(Context context) {
super();
this.contextx = context;
}
public Available() {
super();
}
public static HashMap<Marker, DriverInfo> driverIdentification;
private DriverInfo selectedDriverInfo;
public DriverInfo getSelectedDriverInfo() {
return selectedDriverInfo;
}
public void setSelectedDriverInfo(DriverInfo selectedDriverInfo) {
this.selectedDriverInfo = selectedDriverInfo;
}
@Override
public boolean onMarkerClick(Marker marker) {
Intent intent = new Intent(contextx,DriverInfoActivity.class);
startActivityForResult(intent, 0);
return false;
}
}
Contextx是包含google地图的活动的上下文,InfoActivity.class是我想在onMarker点击事件上创建的类。而且这个意图是在Marker点击事件监听器上创建的。
P.S.-我希望这些信息足够。如果我错过了什么,请发表评论。
答案 0 :(得分:0)
你可以这样做:
((Activity)contextx).startActivity(i);
甚至这个,保持startActivityForResult方法:
((Activity)contextx).startActivityForResult(intent, 0);
刚试过它并且有效。