Мне нужно передать в качестве параметра класс / объект SQLiteDatabase, чтобы позволить execSQL действовать. В SQL_User включен расширенный SQLiteOpenHelper .... Но как я инициализирую это на База данных
Думаю, я вообще не понимаю, что с этим делать ...
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 (или свойство writeableDatabase в kotlin), чтобы получить базу данных.
Так что для вас что-то вроде -
Sql_User.insert(db.writeableDatabase , "1", "DefaultUser")
Согласно сообщению об ошибке, вы просто передаете
SQLiteDatabase, верно? Вместо этого вы должны передать экземпляр этого класса. Поэтому необходимо создать объект SQLiteDatabase.