正在从另一个 activity 检索共享首选项。 Android 工作室,Kotlin,API 29

Retrieving a shared preferences item from another activity. Android Studio, Kotlin, API 29

我是一个完整的新手,正在编写我的第一个应用程序。 我创建了一个名为 SettingsInput.kt 的 Activity,它可以很好地将设置保存为 sharedPreferences,并在按下按钮时显示它们。

现在我想在函数中使用其中一个设置作为计算的一部分,以从数据库中的几个表中剔除旧数据该函数在数据库处理程序中 class.

我收到一个错误“未解决的引用:getSharedPreferences”None 到目前为止,我尝试过的方法都有帮助。记住目标 API 级别是 API 29,谁能帮忙?

 var sharedPrefFile = "greenbandbasicpreference"
val sharedPreferences:SharedPreferences = getSharedPreferences(sharedPrefFile,Context.MODE_PRIVATE)//doesnt recognise getSharedPreferences
fun cullData(){
    var noow = ZonedDateTime.now(Clock.systemUTC())
    var noowSecs:Long  = noow.toEpochSecond()
    var noowMins:Long  = (noowSecs)/60
    //var bolusLifeMins:Long = 220// this has to come from a database or store of "preferences"
    //var bolusLifeMins:Long = sharedPreferences.getLong("insLife_key",0)
    val bolusLifeMins   = getSharedPreferences("greenbandbasicpreference",Context.MODE_PRIVATE)

    var minTimeMins = noowMins - bolusLifeMins - 2*(24*60)

    val db = this.writableDatabase

    db.delete(
        "BolusTable",
        "btime <"+ minTimeMins ,
        null
    )
    db.delete(//this is a part of the function for cull CarbsTable
        "CarbsTable",
        "carbTime <"+ minTimeMins ,
        null
    )


    db.close()

}

方法 getSharedPreferences 是来自上下文 class 的方法,因此您需要一个上下文来请求它,例如:

context.getSharedPreferences(sharedPrefFile,Context.MODE_PRIVATE)

https://developer.android.com/reference/android/content/Context#getSharedPreferences(java.lang.String,%20int)