android - Android/Kotlin:如何创建一个使用 DBLocal 类的类?错误消息:类型不匹配需要上下文
问题描述
我想创建一个管理本地数据库和另一个数据库的通用数据库类。我有一个错误,但我不明白是什么问题......
普通班:
class DBHandler {
companion object {
val sharedInstance = DBHandler() //gérer si sharedinstance est null pour éviter pb d'ecriture
}
fun methodToSelectData(strQuery: String, dataBase: String)/*, completion: @escaping (_ result:*/
{
print(message = strQuery)
val dbLocal = DBLocal(this, null, null, 1) //pb on this line
dbLocal.methodToSelectData(strQuery)
}
}
数据库类:
class DBLocal(context: Context, name: String?, factory: SQLiteDatabase.CursorFactory?, version: Int) : SQLiteOpenHelper(context, DATABASE_NAME, factory, DATABASE_VERSION)
{
override fun onCreate(db: SQLiteDatabase)
{
print(DATABASE_NAME)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int)
{
}
fun methodToSelectData(strQuery: String)/*, completion: @escaping (_ result:*/
{
}
fun methodToInsertUpdateDeleteData(strQuery: String)/*, completion: @escaping (_ result: Bool) -> Void)*/
{
}
companion object {
private val DATABASE_VERSION = 1
private val DATABASE_NAME = "Local.db"
}
}
提前致谢。
解决方案
你可以给一个上下文methodToSelectData
fun methodToSelectData(context : Context, strQuery: String, dataBase: String)/*, completion: @escaping (_ result:*/
{
print(message = strQuery)
val dbLocal = DBLocal(context, null, null, 1) //pb on this line
dbLocal.methodToSelectData(strQuery)
}
推荐阅读
- javascript - 如何在javascript中的新型匿名函数中访问此关键字
- python - 如何使第一行变成第二级MultiIndex
- python - 这段代码实际上是否具有二次复杂度?
- python - 使用 pyspark(查询)从 Hadoop 中删除文件
- ruby-on-rails - 将 cookie 传递到地理编码器
- php - 使用 php 变量时无法执行 SQL 更新
- php - 使用 PHP 的 HTML 到 PDF 转换器
- python - ev3dev python 电源脚本
- ios - 为嵌套在 UITableViewCell 中的 UIStackView 中的 UICollectionView 配置动态高度
- vba - 使用变量时 Dsum 的结果不相加