在使用Kotlin时通过不可@组合的函数传递LocalContext

jc3wubiy  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(103)

此功能起作用;

@Composable
fun writeTextData(){

   val cx = LocalContext.current
   var textData = ""

   // Constructs text data
   textData += ...
   ...

    FileWorks().writeText(cx, "setup", "setup", content = textData)

}

这是我们正在保存的类文件的东西;

class FileWorks {

  fun writeText(context: Context, dirName: String, fileName: String, content: String ){

    val path = context.filesDir

    val letDirectory = File(path, dirName)

    val file = File(letDirectory, fileName)

    val isNewFileCreated :Boolean = file.createNewFile()

    if(isNewFileCreated){

        println("$fileName is created successfully.")

    } else{

        println("$fileName already exists.")

    }

    file.writeText(content)

 }

 ...

}

但是当函数不可组合时,我无法使用它。
我必须从其他几个可组合函数中调用这个函数。
所以它必须是不可组合的。

fun writeTextData(){

   val cx = LocalContext.current
   var textData = ""

   // Composes text data
   textData += ...
   ...

    FileWorks().writeText(cx, "setup", "setup", content = textData)

}
gcuhipw9

gcuhipw91#

我不确定writeTextData在哪里被使用,但是为什么不直接在函数签名中添加一个参数呢?

fun writeTextData(context: Context){

   ...
   ...
   ...

   FileWorks().writeText(context, "setup", "setup", content = textData)
}

相关问题