歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

最近在寫一個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