Search code examples
androidlistviewkotlin

Kotlin - Copy clicked items of a ListView to clipboard


I have to copy clicked items of a ListView to clipboard manager using Kotlin.

I've tried

listView.setOnItemClickListener { parent, view, position, id ->
            val item = listView.selectedItem as String?
            myClip = ClipData.newPlainText("text", item)
            myClipboard?.primaryClip = myClip }

But it says:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setOnItemClickListener(android.widget.AdapterView$OnItemClickListener)' on a null object reference

For my ListView I used

var values = ArrayList<String>()
val adapter = ArrayAdapter(this, R.layout.listview_text_color, values)
listView?.adapter = adapter
adapter.notifyDataSetChanged()

Solution

  • SOLUTION

    Instead of using a listView layout, I used the alertDialog.setAdapter(). Here's the code

         alertDialogList.setAdapter(adapter, DialogInterface.OnClickListener { _, which ->
                val item = adapter.getItem(which) //this is my code to copy clicked items on clipboard
                myClip = ClipData.newPlainText("text", item)
                myClipboard?.primaryClip = myClip
    })