0

我知道這個問題以前也被問過,但他們都沒有幫助過我。我試圖做的是當用戶點擊谷歌地圖上的標記時創建一個新的活動。當用戶點擊AlertDialog的OK按鈕時會生成此標記。我創建了一個獨立的類作爲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是包含了谷歌地圖和InfoActivity.class是,我想創建onMarker類的活動背景點擊事件。而FYI這個意圖是在Marker點擊事件監聽器上創建的。

P.S.-我希望這些信息足夠。如果我錯過了某些事情,請發表評論。

+0

你如何初始化'contextx'? –

+0

請發佈您調用'startActivityForResult'的類的完整代碼。 – pyus13

+0

我已經通過構建者來實現MapActivity的上下文,並將其用於意圖。 – Puneetr90

回答

0

你可以這樣做:

((Activity)contextx).startActivity(i); 

甚至這一點,以保持startActivityForResult方法:

((Activity)contextx).startActivityForResult(intent, 0); 

只是測試它和它的作品。

相關問題