我需要传递参数 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没有伴随对象,因此必须在此初始化
答案 0 :(得分:1)
您的db
变量的类型为SQLOpenHelper
,而非SQLiteDatabase
。要从帮助程序获取数据库,您需要调用getWritableDatabase
方法(或kotlin中的writeableDatabase
属性)来获取数据库。
所以对你来说,像 -
Sql_User.insert(db.writeableDatabase , "1", "DefaultUser")