Android 如何通过Kotlin在ListView中获取检查ID?

Android 如何通过Kotlin在ListView中获取检查ID?,android,listview,kotlin,Android,Listview,Kotlin,我尝试从我的ListView中获取选中的项目: val lvPlayers = findViewById(R.id.ListViewAllPlayers) as ListView; lvPlayers.choiceMode = ListView.CHOICE_MODE_MULTIPLE; lvPlayers.adapter = adapter lvPlayers.setOnItemClickListener { adapterView: Ad

我尝试从我的ListView中获取选中的项目:

 val lvPlayers = findViewById(R.id.ListViewAllPlayers) as ListView;
    lvPlayers.choiceMode = ListView.CHOICE_MODE_MULTIPLE;
    lvPlayers.adapter = adapter

    lvPlayers.setOnItemClickListener { 
            adapterView: AdapterView<*>, view1: View, i: Int, l: Long ->
        Toast.makeText(applicationContext,lvPlayers.checkedItemCount.toString(),
                Toast.LENGTH_SHORT).show();
        var checked = lvPlayers.checkedItemIds;
        SharedData.SelectedPlayers.clear();
        for (ch in checked) {
            SharedData.SelectedPlayers.add(players.get(ch.toInt()));
        }
    }
val lvPlayers=findviewbyd(R.id.ListViewAllPlayer)作为ListView;
lvPlayers.choiceMode=ListView.CHOICE\u MODE\u MULTIPLE;
lvPlayers.adapter=适配器
lvPlayers.setOnItemClickListener{
adapterView:adapterView,视图1:View,i:Int,l:Long->
Toast.makeText(applicationContext,lvPlayers.checkedItemCount.toString(),
吐司。长度(短)。show();
var checked=lvPlayers.checkedItemIds;
SharedData.SelectedPlayer.clear();
对于(签入){
SharedData.SelectedPlayers.add(players.get(ch.toInt());
}
}
但它对我不起作用。
我试图使用中的代码,但据我所知,Kotlin无法迭代
SparseBooleanArray

那么,您能帮我获取ListView的检查ID吗?
我是否应该创建一个扩展方法来迭代
SparseBooleanArray
? 或者,也许是其他方式

我明白,Kotlin不能迭代
SparseBooleanArray

Kotlin的
for
可以迭代任何内容,如果它提供了
迭代器()
,那么它可以是一个方法或一个扩展函数。这是你的电话号码

您可以将
SparseBooleanArray#迭代器
实现为一个扩展函数,并让代码正常工作

我明白,Kotlin不能迭代
SparseBooleanArray

Kotlin的
for
可以迭代任何内容,如果它提供了
迭代器()
,那么它可以是一个方法或一个扩展函数。这是你的电话号码


您可以将
SparseBooleanArray#迭代器
实现为一个扩展函数,并让您的代码正常工作。

您可以通过其索引对数组进行迭代,方法是:

for (i in 0..a.size()-1) {
    //access to a[i]
}
另见和

2017年3月27日编辑:

您还可以使用等效的

for (i in a.indices) {
    //access to a[i]
}

您可以通过索引在数组上迭代,方法是:

for (i in 0..a.size()-1) {
    //access to a[i]
}
另见和

2017年3月27日编辑:

您还可以使用等效的

for (i in a.indices) {
    //access to a[i]
}

您的代码的格式设置已关闭。请检查代码的格式是否已关闭。请检查您是否忘记了
size-1
您忘记了
size-1