2011-05-04 5 views
0

이라고하는 탭에서 팝업을 생성하는 메소드가 있는데 다른 클래스 pipCallPopup()을 호출하려고합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 메소드를 통해 의도를 호출하지 않아야합니까? 내 목표는 onBalloonTap이 호출되면 다른 활동을 시작하는 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 당신은 intent 당신이,318,956,228,321에 사용 선언해야안드로이드는 다른 클래스의 메소드에서 인 텐트를 호출합니다.

05-04 22:33:41.022: ERROR/AndroidRuntime(704): FATAL EXCEPTION: main 
05-04 22:33:41.022: ERROR/AndroidRuntime(704): java.lang.NullPointerException 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.app.Activity.startActivityForResult(Activity.java:2817) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.app.Activity.startActivity(Activity.java:2923) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.appname.pip.pip.CallPopup(pip.java:192) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.appname.pip.MyItemizedOverlay.onBalloonTap(MyItemizedOverlay.java:67) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.readystatesoftware.mapviewballoons.BalloonItemizedOverlay$1.onTouch(BalloonItemizedOverlay.java:203) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.View.dispatchTouchEvent(View.java:3762) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1671) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.app.Activity.dispatchTouchEvent(Activity.java:2086) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1655) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1785) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.os.Looper.loop(Looper.java:123) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at java.lang.reflect.Method.invoke(Method.java:521) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-04 22:33:41.022: ERROR/AndroidRuntime(704):  at dalvik.system.NativeStart.main(Native Method) 
05-04 22:33:41.102: WARN/ActivityManager(38): Force finishing activity com.appname.pip/.pip 
05-04 22:33:41.952: WARN/ActivityManager(38): Activity pause timeout for HistoryRecord{43f680f0 com.appname.pip/.pip} 

답변

0

"pip"클래스가 Activity를 확장하는 것처럼 보이지만, 당신은 Activity 라이프 사이클을 거치지 않고 pip 객체를 생성하는 것입니다. 널 포인터 예외는 아마도 당신의 pip 객체가 그 부모 Context가 무엇인지 모르기 때문일 것입니다. onBalloonTap (예 : View.getContext())에서 Context 객체에 거의 액세스 할 수 있으므로 Context.startActivity()을 호출하면됩니다.

0

: pip

public void CallPopup() 
{ Log.i("CallPopup", "Started CallPopup"); 
    startActivity(intent); 
    finish(); 
} 

에서

CallPopUp()은 내가이 로그를 얻을

protected boolean onBalloonTap(int index, OverlayItem item) { 
    Toast.makeText(c, "onBalloonTap for overlay index " + index, 
      Toast.LENGTH_LONG).show(); 
    pip pipinst =new pip(); 
    pipinst.CallPopup(); 
    return true; 
} 

다른 클래스에 onBalloonTap에서 호출되는 0 그 이유가 NullPointerException이 될 수 있습니다.

관련 문제