我是一个新手,对Android和Kotlin/Java都不太熟悉。我不明白为什么我的
File()
方法会出现以下错误信息:我原以为我所输入的内容应该返回通过无法使用提供的参数调用以下任何函数。
ACTION_GET_CONTENT
获取到的Uri,并且这应该足以构建File对象。我正在尝试制作一个加载txt文件并显示它的应用程序。我希望这只是一个非常简单的错误。fun showFileDialog() {
val fileintent = Intent(Intent.ACTION_GET_CONTENT)
fileintent.setType("text/plain")
fileintent.addCategory(Intent.CATEGORY_OPENABLE)
startActivityForResult(fileintent, FILE_SELECT_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == FILE_SELECT_CODE && resultCode == Activity.RESULT_OK) {
val selectedfile = File(data!!.data)
val readData = FileInputStream(selectedfile).bufferedReader().use { it.readText
textView.text = readData
}
}
}
我不知道剩下的代码是否有效,但这个错误不允许我构建它以进行测试。感谢任何帮助/提示。
已解决:
第一个回答解释了为什么我会得到这个错误(因此,回答了我的问题)
在得到第二个答案和下面的评论的帮助后(以及在SO上的更多搜索;请参见下面的链接),我将我的最后3行代码更改为:
val input: InputStream = getContentResolver().openInputStream(data!!.data)
val inputAsString = input.bufferedReader().use { it.readText() }
textView.setText(inputAsString)
这个很好用。谢谢!
链接: