歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中SQLite構造函數參數Context的幾點注意事項

Android中SQLite構造函數參數Context的幾點注意事項

日期:2017/3/1 10:01:53   编辑:Linux編程

最近在寫一個Android的程序,用到了SQLite數據庫,在主項目中剛開始使用sqlite之前,我先在單獨的一個項目中測試了一下SQLite的使用,只有一個Activity,一個SQLiteHelper,使用的時候好好的,當我在主項目中使用的時候就報錯了,總是空指針錯誤,糾結了幾天之後終於搞定了,現在我寫出來,希望能幫到遇到同樣問題的朋友們!

我的測試項目:

結構圖:

DBHleper類代碼:

package com.avin.android;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBHelper extends SQLiteOpenHelper {

public static final int VERSION = 1;

/**
* 作為SQLiteOpenHelper子類必須有的構造方法
* @param context
* @param name 數據庫名字
* @param factory
* @param version
*/
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
Log.d("Avin","this is dbhelper 4 elements");
// TODO Auto-generated constructor stub
}

public DBHelper(Context context,String name, int version){
this(context,name,null,version);
Log.d("Avin","this is dbhelper 3 elements");
}
public DBHelper(Context context,String name){
this(context,name,VERSION);
Log.d("Avin","this is dbhelper 2 elements");
}
@Override
/**
* 第一次創建數據庫的時候調用,而且是得到readableDatabase或者writeDatabase時才執行
*/
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub

db.execSQL("create table floats(id integer primary key autoincrement ,flt_cand text not null ,flt_key text)");
Log.d("Avin","floats created...");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}

}

Copyright © Linux教程網 All Rights Reserved