在我的主要活动中,我有以下代码调用我的FileBrowser活动:
Intent newFileIntent = new Intent(getBaseContext(), FileBrowser.class);
newFileIntent.putExtra("action", "browseDirectories");
startActivityForResult(newFileIntent, 2);
但是当这段代码执行时,我的app力就会关闭。 这次我再次运行应用程序,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一起使用吗?
答案 0 :(得分:3)
尝试在onCreate()或任何方法中移动声明,这将确保您可以访问intent数据。在onCreate()之前声明变量,因此在任何其他方法之前声明变量,你将无法获得意图附加内容。
将第17行留作private String action;
在onCreate()
里面action = getIntent().getStringExtra("action");