我需要传递参数 SQLiteDatabase 类/对象以使execSQL起作用。在SQL_User中,包含在扩展的SQLiteOpenHelper中。...但是我如何在DatabaseActivity上初始化它
我想我完全不知道该怎么办...
class DatabaseActivity : Activity {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val db = Sql_User(this, "Users", null, 1)
// Here I get an error on ??, anything I think could works doesn'ts
if (db != null) { Sql_User.insert( «??» , "1", "DefaultUser") }
}
}
class Sql_User : SQLiteOpenHelper {
companion object {
fun insert(p0: SQLiteDatabase?, p1: String, p2: String){ p0!!.execSQL("INSERT INTO Users ( id_user, username ) VALUES ('${p1}, '${p2}')")
}
...
}
我遇到的错误是,我传递的任何参数都是... 分类器SQLiteDatabase没有伴侣对象,因此必须在此处初始化
最佳答案
您的db
变量的类型为SQLOpenHelper
而不是SQLiteDatabase
。要从帮助程序获取数据库,您需要调用 getWritableDatabase
方法(或kotlin中的writeableDatabase
属性)以获取数据库。
所以对您来说,
Sql_User.insert(db.writeableDatabase , "1", "DefaultUser")