8

Task: Upload an image which user can choose from device.

How to open File CHooser window on button press in Android app using Kotlin?

Amita
  • 165
  • 1
  • 1
  • 12

2 Answers2

18

In your activity add the button click to add an intent:

btnBack.setOnClickListener {

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

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

}

Set a custom requestCode, I set 111

Add the onActivityResult in your activity to catch the result:

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
    }
}

Now selectedFile will contain the location to what they selected.

Derek
  • 2,674
  • 1
  • 17
  • 30
0

I am using it in a pdf reader inside of a Fragment. Adding my code: but I do not know yet how I define the correct directory to choose my file.

    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)
}
Uchoa
  • 11
  • 1