我正在尝试使用此代码将dbhelper实例从一个活动传递到另一个活动
private void onCategoriesClick() {
private DbAdapter db;
db = new DbAdapter(this);
Intent i = new Intent(this, CategoriesActivity.class);
Bundle b = i.getExtras();
b.putSerializable("db", db); //geting NullPointerException here
startActivityForResult(i, 0);
DbAdapter类实现Serializable
我很困惑,任何人都可以指出我的错误吗?
答案 0 :(得分:3)
在将使用它的活动中创建dbhelper。如果你真的必须在活动之间传递它,那么将它存储在一个静态变量(在你的应用程序类中以便于访问)会更加简单。
答案 1 :(得分:1)
getExtras()返回null,因为在调用它之前没有将任何额外内容放入Intent中。这意味着b == null,因此是NPE。只需将序列化直接放在intent中即可。
i.putExtra("db", (Serializable) db);
但是,一般情况下,如果可以提供帮助,请避免将序列化项传递给意图。