getStringArrayExtra()始终返回null

时间:2015-10-24 15:46:50

标签: java android dictionary android-activity

我正在尝试从我的主要活动中打开新的Google地图活动,我在主要活动中传递Extras并检查意图一切正常并且所有信息都在那里。当新活动打开时,如果我查看信息使用调试我可以看到一切都很好,当我使用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而且它就是。

谢谢!

3 个答案:

答案 0 :(得分:0)

当您将值设置为数组时,您可以尝试这样做:

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

假设列表仅包含字符串,这将起作用。

或者,在MainActivity中,您可以使用

将它们作为ArrayList传递

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

然后你可以在MapActivity收到intent.getExtras().getStringArrayListExtra("LAN_LIST");

答案 1 :(得分:0)

我所要做的只是将信息传递给List。

答案 2 :(得分:-1)

您还必须添加活动名称作为 getStringArray 方法的参数。

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