0

我正在尝试使用此代码将我的 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

我很困惑,有人能指出我的错误吗?

4

2 回答 2

3

在将使用它的活动中创建 dbhelper。如果你真的必须在活动之间传递它,将它存储在静态变量中会更简单(在你的应用程序类中以便于访问)

于 2012-04-07T19:32:54.523 回答
1

getExtras() 返回 null,因为您在调用 Intent 之前没有将任何额外内容放入 Intent。这意味着 b == null,因此是 NPE。只需将可序列化直接放入意图中即可。

i.putExtra("db", (Serializable) db);

不过,一般来说,如果您能提供帮助,请避免将可序列化对象传递给意图。

于 2012-04-07T19:30:44.623 回答