在Android Studio中,如何以列列表形式显示保存到内部目录中的文件?

问题描述 投票:0回答:1

我在 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 告诉我,尽管它们所在的目录正在被使用,但所有文件都没有被使用。我如何使用这些文件?

感谢您的宝贵时间。

android android-studio file android-jetpack-compose android-file
1个回答
0
投票

您显示文件的方式是错误的。

UI

@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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.