java - getStringArrayExtra() 总是返回 null

标签 java android dictionary android-activity

我正在尝试从我的主要 Activity 中打开新的 Google map Activity ,我在主要 Activity 中传递了 Extras 并检查了 Intent ,一切都很好,所有信息都在那里。当新 Activity 打开时,如果我检查信息使用调试我可以看到一切都很好,当我使用 getStringArrayExtra() 它总是返回 NULL。

主要 Activity

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

map Activity

    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 并且它。

谢谢!

最佳答案

当您将值设置为数组时,您可以像这样对所有对象进行尝试:

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"); 的形式接收它们

关于java - getStringArrayExtra() 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320060/

相关文章:

Python:从文件中读取多行并将实例存储在字典中

java - 简单的相机代码导致装有 Android V 5.01 的 Nexus4 重启

java - 用于从 AWIS (Alexa.com) XML 数据中提取信息的 XPath 表达式

java - Firebase数据库,查找现有值

android - 使用 Retrofit 处理 Kotlin 序列化 MissingFieldException

android - 在 USB 设备上模拟 Android 短信/通话

java - eclipse 中的 Struts.xml 包命名空间

android - build.gradle 依赖项自动更新自身

c++ - 从 map 返回迭代器的函数

python - 使用实例属性作为字典值