Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的anko sqlite数据库对象可以';别叫了_Android_Kotlin_Anko - Fatal编程技术网

Android 我的anko sqlite数据库对象可以';别叫了

Android 我的anko sqlite数据库对象可以';别叫了,android,kotlin,anko,Android,Kotlin,Anko,这是我的数据库助手代码 class DatabaseHelper(ctx: Context) : ManagedSQLiteOpenHelper(ctx, "FavoriteMatch.db", null, 1){ companion object { private var instance: DatabaseHelper? = null @Synchronized fun getInstance(ctx: Context): Dat

这是我的数据库助手代码

class DatabaseHelper(ctx: Context) : ManagedSQLiteOpenHelper(ctx, "FavoriteMatch.db", null, 1){

    companion object {
        private var instance: DatabaseHelper? = null

        @Synchronized
        fun getInstance(ctx: Context): DatabaseHelper {
            return instance ?: DatabaseHelper(ctx.applicationContext)
        }
    }

    override fun onCreate(db: SQLiteDatabase) {
        db.createTable(Favorite.TABLE_FAVORITE, true,
            Favorite.MATCH_ID to TEXT + PRIMARY_KEY,
            Favorite.TEAM_HOME_NAME to TEXT,
            Favorite.TEAM_HOME_GOAL to INTEGER,
            Favorite.TEAM_AWAY_NAME to TEXT,
            Favorite.TEAM_AWAY_GOAL to INTEGER,
            Favorite.EVENT_DATE to TEXT,
            Favorite.EVENT_TIME to TEXT)
    }

    override fun onUpgrade(db: SQLiteDatabase, p1: Int, p2: Int) {
        db.dropTable(Favorite.TABLE_FAVORITE, true)
    }

    val Context.database : DatabaseHelper
        get() = getInstance(applicationContext)
}
下面是最喜欢的数据类

data class Favorite(
    val idEvent: String?,
    val strHomeTeam: String?,
    val strAwayTeam: String?,
    val strHomeGoalDetails: String?,
    val strAwayGoalDetails: String?,
    val dateEvent: String?,
    val strTime: String?
) {
    companion object {
        const val TABLE_FAVORITE: String = "TABLE_FAVORITE"
        const val MATCH_ID: String = "ID_"
        const val TEAM_HOME_NAME: String = "HOME_NAME"
        const val TEAM_HOME_GOAL: String = "HOME_GOAL"
        const val TEAM_AWAY_NAME: String = "AWAY_NAME"
        const val TEAM_AWAY_GOAL: String = "AWAY GOAL"
        const val EVENT_DATE: String = "DATE_EVENT"
        const val EVENT_TIME: String = "EVENT_TIME"
    }
}

但不知何故,我不能在任何地方从database helper调用我的数据库实例,例如,我在ScheduleDetailActivity.kt中调用了它,因为没有数据库对象

目标是这个数据库可以这样调用

database.use {
   //Insert to database
}

Context.database应在
DatabaseHelper
范围之外定义。因此,您的
DatabaseHelper
应该如下所示

 class DatabaseHelper(ctx: Context) : ManagedSQLiteOpenHelper(ctx, "FavoriteMatch.db", null, 1){

   // Your previous code 

}

val Context.database : DatabaseHelper
    get() = getInstance(applicationContext)