在片段内部访问数据库处理程序

时间:2018-12-29 08:06:01

标签: android android-studio android-fragments android-intent kotlin

我正在尝试访问fragment内的数据库处理程序,但它引发了此错误does not have companion object error。我尝试了数据库处理程序查询及其正常工作。任何帮助表示赞赏。

使用的语言

Kotlin

代码

class OneFragment : Fragment() {

     companion object
{
//Error in the below context
    var db=TestDatabaseHandler(Context)
}

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? {
    {

    var a=db.readData()

    }

    }

1 个答案:

答案 0 :(得分:0)

您无法访问context内部的companion object {}。改为将db更改为此类OneFragment的字段

class OneFragment : Fragment() {

    val db by lazy { TestDatabaseHandler(context!!) }

    override fun onCreateView(...)
        var a = db.readData()
    }
}

参考-Property delegation in Kotlin ,作者Antonio Leiva

相关问题