【问题标题】:Android Development: java NullPointerException When Trying To getStringExtra()Android开发:尝试getStringExtra()时出现java NullPointerException
【发布时间】:2010-11-06 22:29:33
【问题描述】:

在我的主要活动中,我有以下代码调用我的 FileBrowser 活动:

  Intent newFileIntent = new Intent(getBaseContext(), FileBrowser.class);
  newFileIntent.putExtra("action", "browseDirectories");
  startActivityForResult(newFileIntent, 2);

但是当这段代码执行时,我的应用程序强制关闭。 这次我在打开 DDMS 的情况下再次运行该应用程序以查找错误,结果如下:

11-06 22:01:04.892: ERROR/AndroidRuntime(28287): Caused by: java.lang.NullPointerException
11-06 22:01:04.892: ERROR/AndroidRuntime(28287):     at com.alexprice.devpad.FileBrowser.<init>(FileBrowser.java:17)

这是第 17 行(位于 onCreate 之外):

private String action = getIntent().getStringExtra("action");

怎么了?我不能将 putExtra 与 startActivityForResult 一起使用吗? putExtra 只能和 startActivity 一起使用吗?

【问题讨论】:

    标签: java android android-activity nullpointerexception


    【解决方案1】:

    尝试在 onCreate() 或任何方法中移动声明,这将确保您可以访问意图数据。在 onCreate() 和任何其他方法之前声明变量,您将无法访问意图附加内容。

    将第 17 行保留为 private String action;

    在 onCreate() 内部

    action = getIntent().getStringExtra("action");
    

    【讨论】:

    • 没问题——问起来永远不会愚蠢 ;-) 做事“乱七八糟”太容易了,我认为,需要时间来适应事情发生的顺序活动生命周期。
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多