我正在尝试从我的主要活动中打开新的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
而且它就是。
谢谢!
答案 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);