2010-03-04 29 views
2

我正在使用标记来绘制地图视图。当我点击标记时,它会显示一个泡泡。点击地图视图中的气泡时出现空指针异常

如果我点击那个气泡,它会完美地显示烤面包。

我想在那里开始活动,但会引发异常。

这是我的代码:

@Override 
protected boolean onBalloonTap(int index) { 
try{ 
Activity a=new Activity(); 
a.startActivity(new Intent(a.getBaseContext(),BruConnect_Detail.class)); 
//  Toast.makeText(c, "onBalloonTap for overlay index " + index, 
//    Toast.LENGTH_LONG).show(); 
}catch(Exception e){ 
Log.v(TAG,"error:"+e); 
e.printStackTrace(); 
} 
return true; 
} 

我logcat的显示屏显示:

03-04 23:53:13.311: VERBOSE/MyItemizedOverlay(713): error:java.lang.NullPointerException 
03-04 23:53:13.322: WARN/System.err(713): java.lang.NullPointerException 
03-04 23:53:13.331: WARN/System.err(713):  at android.content.ComponentName.<init>(ComponentName.java:75) 
03-04 23:53:13.331: WARN/System.err(713):  at android.content.Intent.<init>(Intent.java:2551) 
03-04 23:53:13.352: WARN/System.err(713):  at com.example.bruconnect.MyItemizedOverlay.onBalloonTap(MyItemizedOverlay.java:47) 
03-04 23:53:13.352: WARN/System.err(713):  at com.example.bruconnect.BalloonItemizedOverlay$1.onTouch(BalloonItemizedOverlay.java:135) 
03-04 23:53:13.373: WARN/System.err(713):  at android.view.View.dispatchTouchEvent(View.java:3705) 
03-04 23:53:13.373: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852) 
03-04 23:53:13.382: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.392: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.402: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.402: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.411: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.424: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.431: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.462: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
03-04 23:53:13.474: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
03-04 23:53:13.482: WARN/System.err(713):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 
03-04 23:53:13.482: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 
03-04 23:53:13.502: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.502: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.512: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.525: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.525: WARN/System.err(713):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
03-04 23:53:13.525: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
03-04 23:53:13.533: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
03-04 23:53:13.542: WARN/System.err(713):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 
03-04 23:53:13.552: WARN/System.err(713):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 
03-04 23:53:13.552: WARN/System.err(713):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 
03-04 23:53:13.562: WARN/System.err(713):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-04 23:53:13.562: WARN/System.err(713):  at android.os.Looper.loop(Looper.java:123) 
03-04 23:53:13.562: WARN/System.err(713):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
03-04 23:53:13.581: WARN/System.err(713):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-04 23:53:13.581: WARN/System.err(713):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-04 23:53:13.591: WARN/System.err(713):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
03-04 23:53:13.601: WARN/System.err(713):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
03-04 23:53:13.601: WARN/System.err(713):  at dalvik.system.NativeStart.main(Native Method) 

什么问题?我认为问题在于上下文的价值。任何想法或建议来解决这个问题?

回答

1

根据堆栈跟踪,直接的错误在行47 in MyItemizedOverlay.java

而且,你不能只是创建一个像这样的新的Activity。您需要一个真实的Context(例如包含MapView的活动或应用程序上下文)以启动活动。

另外,一方评论:onBalloonTap在哪里定义?它似乎并不是标准的ItemizedOverlay方法。

+0

嗨罗马,我也遇到了同样的问题!你能指导我如何解决这个问题吗?我想我基本上需要了解如何访问包含我的MapView的活动。期待您的&@Praveen回应。 – Ahmed 2011-09-19 16:24:17