【问题标题】:Android: Intent#getExtras() is always null, nothing helpsAndroid:Intent#getExtras() 始终为空,没有任何帮助
【发布时间】:2015-09-13 20:01:44
【问题描述】:

当我在 Activity 中创建新 Intent

Intent myIntent = new Intent(this, TargetActivity.class);
// apply hacks explained in above stackoverflow answers
System.out.println(myIntent.getExtras())

(此代码位于默认的空白活动中)

Intent#getExtras() 始终是null,因此Intent#putExtras(...) 直接导致NullPointerException。但是,启动 Intent 没有任何问题。

我已阅读有关此主题的所有类似 stackoverflow 帖子:

我都试过了,但似乎都没有任何效果。

任何人都可以提供一个解决方案来简单地启动一个带有非空附加内容的 Intent,总是有效

或者,是否有任何其他方法可以向干净且不泄漏的 Intent 提供额外信息?

【问题讨论】:

  • thus Intent#putExtras(...) leads to immediate NullPointerException。我不这么认为。 Intent 的源代码检查 null 并在您第一次调用 putExtras 时初始化 Extras
  • 你期待什么?在向 Intent 添加任何数据之前调用 intent.getExtras ..
  • 您发布的这些链接似乎都没有直接适用于尝试将 Intent 中的额外内容从一个 Activity 传递到另一个。试试这个:stackoverflow.com/questions/2091465/…

标签: android android-intent


【解决方案1】:

好的,我发现了问题。感谢@DanielNugent 指出 Intent 处理的规范答案。

问题是:当我这样做时

myIntent .putExtra("myVar", myVar);

myVarnull

我太愚蠢了,我没有仔细检查并惊慌失措,让 Android 有点愚蠢,这确实导致立即 NullPointerException!不信请自己试一试。

@njzk2:谢谢,我没有意识到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    相关资源
    最近更新 更多