在另一个活动中使用数据库openhelper

时间:2013-04-03 15:52:05

标签: android sqliteopenhelper

在openhelper中我有createQuestionDb()。如何在另一个类(首选项)中使用此活动?

public class OpenHelper extends SQLiteOpenHelper {
 public OpenHelper(Context context, final boolean questionDb) {
        super(context, dbName, null, 1);
}
         public void onCreate(SQLiteDatabase db) {

         db.execSQL("CREATE TABLE ... " );
         createQuestionDb(db,myvalue);

        }

     public void createQuestionDb(SQLiteDatabase db, String myvalue ) {
     ContentValues _Values = new ContentValues();
    _Values.put("Text", myvalue);  
    db.insert("table", null, _Values);   

    }
}

将使用openhelper的类:

public class Preferences extends Activity {

public void insertdata () {
createQuestionDb();
}

1 个答案:

答案 0 :(得分:0)

很难说出你在做什么,但看起来你正在扩展SQLiteOpenHelper,所以尝试一种稍微不同的方法:

public void createQuestionDb(String myvalue) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues _Values = new ContentValues();
    _Values.put("Text", myvalue);  
    db.insert("table", null, _Values);
    db.close();
}

现在,您可以在任何课程中拨打createQuestionDb(string)


要防止递归调用,请手动将第一个插入添加到onCreate()

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE ... " );
    ContentValues _Values = new ContentValues();
    _Values.put("Text", myvalue);  
    db.insert("table", null, _Values);   
}