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 を返します。これは、呼び出す前にインテントにエクストラを入れていないためです。これは、b == null であることを意味するため、NPE です。シリアル化可能をインテントに直接入れるだけです。

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

ただし、一般的には、できればシリアライズ可能なものをインテントに渡すことは避けてください。

于 2012-04-07T19:30:44.623 に答える