2015-10-24 240 views
2

我試圖從我的主要活動中打開新的Google地圖活動,我在主要活動中傳遞Extras,並檢查意圖一切正常,並且所有信息都在那裏。當新活動打開時,如果我使用調試檢查信息,我可以看到一切都很好,當我使用getStringArrayExtra()時,它總是返回NULL。getStringArrayExtra()總是返回null

主要活動

mapIntent.putExtra("LAN_LIST", goodLan.toArray()); 
mapIntent.putExtra("LON_LIST", goodLon.toArray()); 
mapIntent.putExtra("HeadLine_LIST", goodheadline.toArray()); 
mapIntent.putExtra("Context_LIST", goodcontext.toArray()); 
startActivity(mapIntent); 

地圖活動

Intent intent = getIntent(); 

    lan = intent.getExtras().getStringArray("LAN_LIST");//does not work 
    lan = intent.getStringArrayExtra("LAN_LIST");//does not work too 
    lon = intent.getStringArrayExtra("LON_LIST");//same 
    Headline = intent.getStringArrayExtra("HeadLine_LIST");//same 
    Context = intent.getStringArrayExtra("Context_LIST");//same 

我沒有張貼日誌,因爲我沒有任何異常,所有的變量得到null並且它。

謝謝!

+0

你確定,你傳遞的數據是** StringList **,所以它轉換爲String數組?我懷疑如果數據不是字符串列表比不會工作。 – user370305

回答

-1

您還必須添加活動的名稱作爲方法的參數getStringArray

lan = intent.getExtras().getStringArray(MainActivity.LAN_LIST); 
+0

關鍵字符串不是const,那我該怎麼做呢? – Alikman103

+0

使它成爲const,仍然沒有。 – Alikman103

0

當你設置的值作爲數組,你可以嘗試這樣所有:

mapIntent.putExtra("LAN_LIST", goodLan.toArray(new String[goodLan.size()]));

假設列表只包含字符串,這將工作。

或者,在你的MainActivity您使用

mapIntent.putStringArrayListExtra("LAN_LIST", (ArrayList<String>) goodLan);

可以將它們作爲ArrayList和那麼你可以在MapActivity接納他們爲intent.getExtras().getStringArrayListExtra("LAN_LIST");

+0

我不知道爲什麼,但工作。非常感謝你! – Alikman103

+0

很高興知道這對你有所幫助。你認爲你可以接受它作爲答案嗎? –

0

我所要做的就是傳遞信息名單。