Kotlin - копирование выбранных элементов ListView в буфер обмена - PullRequest
0 голосов
/ 08 июля 2019

Мне нужно скопировать выбранные элементы ListView в менеджер буфера обмена с помощью Kotlin.

Я пробовал

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

Но там написано:

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

Для моего ListView я использовал

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

Ответы [ 2 ]

1 голос
/ 08 июля 2019

возможно ваш listview равен нулю.Используйте listview?.setOnItemClickListener вместо

0 голосов
/ 13 июля 2019
РЕШЕНИЕ

Вместо использования макета listView, я использовал alertDialog.setAdapter ().Вот код

     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
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...