getStringArrayExtra()总是返回null

4

我想从我的主活动打开新的Google地图活动,在主活动中传递附加信息并检查意图,所有信息都没问题。当新的活动打开时,如果我使用调试检查信息,我可以看到一切都很好,但是,当我使用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值。
谢谢!

你确定你传递的数据是 StringList 类型吗?因为如果不是字符串列表,那么这段代码可能无法正常工作。 - user370305
3个回答

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");


我不知道为什么,但它起作用了。非常感谢! - Alik.Koldobsky
很高兴知道它对你有帮助。你觉得你能接受它作为答案吗? - Swagata Acharyya

0
我所要做的就是将信息作为列表传递。

-1

你还需要将活动名称作为 getStringArray 方法的参数添加。

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

关键字符串不是常量,那我该怎么办呢? - Alik.Koldobsky
仍然没有任何变化,将其设为const。 - Alik.Koldobsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接