java - 如何将上下文作为参数传递

标签 java android kotlin

我是 kotlin 的初学者,我试图将上下文作为参数传递,但不起作用...... 这些是我的代码:

函数保存数据库

    private fun saveDatabase(context : Context){
    val fightersName = Match(1, fighter1.toString(), fighter2.toString(),
            minute.toInt(), round.toInt())

    val db = DBContract(context)
    db.insertData(fightersName)
    }

调用函数

   saveDatabase(context)

警告

Typemismatch Required: Context Found: Context?

此类是扩展 Fragment() 的 fragment

最佳答案

您的函数需要一个非空 Context 对象,而您正在使用可为空且可变的 Context 对象调用它。如果您确定您的上下文不为空,请调用

saveDatabase(context!!)

!! 表示您保证该对象不为 null

或者您可以检查您的功能以确保安全,然后将您的功能更改为

private fun saveDatabase(context : Context?){
    if(context != null){
    val fightersName = Match(1, fighter1.toString(), fighter2.toString(),
            minute.toInt(), round.toInt())

    val db = DBContract(context)
    db.insertData(fightersName)
    }
    }

关于java - 如何将上下文作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766827/

相关文章:

kotlin - 如何使用 equals() 和 contains() 检查可为空类型的数据?我想它们都是字符串的方法,但为什么它们的行为不同?

android - 更改应用程序语言

java.lang.String 无法在 JsonArray 中转换

java - 用于在测试字符串中重复文本的正则表达式

android - MongoDB:如何在 MongoDB 中设计 Twitter 风格的关注者/关注关系模型?

android 4.4 - webview 不接受 css 宽度 100%

android - Kotlin中的AWS Drop-In Auth变成空白

java - 验证txt文件

java - dumpstack() 和 printStackTrace() 之间的区别

android - 如何解决 android 4.4 中的错误 :"!!! FAILED BINDER TRANSACTION !!! "