2012-11-17 41 views
0

我正在學習如何在Android活動中使用sql數據庫。我從this tutorial瞭解到。我有一個在本教程中使用數據庫處理程序的活動。 我在活動類中聲明瞭變量。在android活動中使用數據庫

DatabaseHandler db; 

在onCreate方法創建一個新的數據庫處理器對象:

DatabaseHandler db = new DatabaseHandler(this); 

我想使用的數據庫按鈕被點擊之後。所以我在onClick方法中使用連接,但是我得到一個空指針異常,除非我在onclick中創建一個新對象。爲什麼是這樣呢,在不同類型的對象中,我可以像在這個例子中那樣聲明變量。

的數據庫處理器的構造是:

public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

超是SQLiteOpenHelper。

回答

1

由於實例化不正確,您將得到null異常。你宣佈你的分區字段,但然後實例化一個不同對象DatabaseHandler db = new DatabaseHandler(this); < - 作爲一個局部變量。因此,您的onClick只能訪問未經證實的字段。要解決你需要在你的創建中替換你所擁有的。

db = new DatabaseHandler(this); 

或者如果onClick在onCreate中,通過應用最終修飾符。 (並刪除現場對象)

+0

謝謝。多麼愚蠢的錯誤。 –

+0

@mango如何使用'db = new DatabaseHandler(this);'出於任何活動,如自定義類與數據庫一起工作? –