我在 Android Studio 中开发了一个简单的应用程序,它尝试在列列表中显示保存在内部目录中的文件,但它不起作用。
这是代码
// File Directory
val fileDirectory = File(filesDir, "File Directory")
if (!fileDirectory.exists()) { fileDirectory.mkdirs() }
// List of Files in File Directory
val files = fileDirectory.listFiles()
// Individual Files In File Directory
var fileOne = File(fileDirectory, "File One.txt")
var fileTwo = File(fileDirectory, "File Two.txt")
var fileThree = File(fileDirectory, "File Three.txt")
// Application Layout
Column(modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center) {
// Displayed List of Files
Column {
files?.forEach { file ->
Text(
text = file.name,
color = Color.Black,
fontSize = 30.sp) } }
}
共有三个文件。它们都是空的,但这并不重要。我只想显示每个文件的名称,但这没有发生。屏幕一片空白。我尝试向文件添加文本并使用 file.readText 但它仍然没有显示任何内容。
Android Studio 告诉我,尽管它们所在的目录正在被使用,但所有文件都没有被使用。我如何使用这些文件?
感谢您的宝贵时间。
您显示文件的方式是错误的。
@Composable
fun ShowFiles() {
// Assume that files are getting from Device.
// So put your code here accordingly.
val files = listOf(
"File One Text",
"File Two Text",
"File Three Text",
"File Four Text",
)
LazyColumn {
items(files) { item ->
FileItem(item)
HorizontalDivider(thickness = 0.5.dp)
}
}
}
@Composable
fun FileItem(item: String) {
Card(
Modifier
.fillMaxWidth()
.padding(10.dp)
) {
Text(text = item)
}
}