2014-12-27 117 views
7

尝试使用SQLiteOpenHelper扩展类,但此错误显示为:“android.database.sqlite.SQLitepenhelper中没有可用的默认构造函数“与其他一起‘不能解析符号类别,注意,...’Android Studio中的“android.database.sqlite.SQLitepenhelper中没有默认构造函数”

class DbHelper extends SQLiteOpenHelper { 


    @Override 
    public void onCreate(SQLiteDatabase db) { 

     db.execSQL(Category.getSql()); 
     db.execSQL(Note.getSql()); 
     db.execSQL(Attachment.getSql()); 
     db.execSQL(CheckItem.getSql()); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); 

     onCreate(db); 
    } 

回答

13

您需要定义调用SQLiteOpenHelper的4或5 ARG super构造一个显式构造自己。

例如:

public DbHelper(Context context) { 
    super(context, "database.db", null, 1); 
} 

其中database.db是你的数据库文件名和1是版本。

+0

我有同样的问题WebView类,但无论如何这回答了我的问题。谢谢! – Seth 2016-08-04 22:02:26

2

如果你的孩子DBHelper然后这个帖子的帮助,othervise可以媒体链接understandfirst定义它像这样的你在课堂之外,意味着uperside ...

private DBHelper ourHelper; 
private final Context ourContext; 

然后用这个

class DbHelper extends SQLiteOpenHelper { 
public DBHelper(Context context) { 
     super(context, DB_NAME, null, DB_VIRSION); 
     // TODO Auto-generated constructor stub 
    } 

@Override 
public void onCreate(SQLiteDatabase db) { 

    db.execSQL(Category.getSql()); 
    db.execSQL(Note.getSql()); 
    db.execSQL(Attachment.getSql()); 
    db.execSQL(CheckItem.getSql()); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); 

    onCreate(db); 
} 

然后尝试此上下文为您的父类

public MyDatabase(Context c){ 
    ourContext=c; 
} 
相关问题