1、文件选择器,相当于易语言的选择器一样,还比较方便
val current = LocalContext.current
var text=""
val galleryLauncher =rememberLauncherForActivityResult(
contract = ActivityResultContracts.GetContent()
) { it ->
it?.let { it1 ->
context.contentResolver.openInputStream(it1)?.use { inputStream ->
BufferedReader(InputStreamReader(inputStream)).use { reader ->
//读取单行进行添加
// val lines = reader.readLines()
// text = lines.joinToString("\n")
// 读取多行进行添加
text = reader.readText()
}
}
}
-
rememberLauncherForActivityResult
: 这是一个Composable函数,它用于在Compose中记住一个ActivityResultLauncher,这样它就可以在重组时保持状态。ActivityResultLauncher是一个对象,它允许您启动一个Activity并处理返回的结果。
-
contract = ActivityResultContracts.GetContent()
: 这指定了ActivityResultContract,它定义了启动Activity的Intent以及如何解释Activity的结果。ActivityResultContracts.GetContent()
是一个预定义的Contract,用于从用户选择的内容提供者中获取数据。它通常会启动一个文件选择器,允许用户选择一个文件。
-
@Composable
public fun <I