使用Kotlin在Android应用中选择Open File

时间:2018-04-06 16:51:46

标签: kotlin

任务:上传用户可从设备中选择的图片。

如何使用Kotlin在Android应用程序中按下按钮打开File CHooser窗口?

2 个答案:

答案 0 :(得分:7)

在您的活动中添加按钮单击以添加意图:

btnBack.setOnClickListener {

    val intent = Intent()
            .setType("*/*")
            .setAction(Intent.ACTION_GET_CONTENT)

    startActivityForResult(Intent.createChooser(intent, "Select a file"), 111)

}

设置自定义requestCode,我设置111

在您的活动中添加onActivityResult以捕获结果:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    if (requestCode == 111 && resultCode == RESULT_OK) {
        val selectedFile = data?.data //The uri with the location of the file
    }
}

现在selectedFile将包含他们所选内容的位置。

答案 1 :(得分:-1)

我正在Fragment内的pdf阅读器中使用它。添加我的代码: 但是我还不知道如何定义正确的目录来选择文件。

    val selectedFile = data?.data //The uri with the location of the file <p>
    pdfView.fromUri(selectedFile).load() // Show the selected file

    //Fragment view 
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, 
    savedInstanceState: Bundle?): View? {

    val intent = Intent()
            .setType("*/*")
            .setAction(Intent.ACTION_GET_CONTENT)

    startActivityForResult(Intent.createChooser(intent, "Select a file"), 111)
    return inflater.inflate(R.layout.fragment_sat,container,false)
}