parent、view 和 id Parameteris never used 可以重命名为_ (Kotlin)

parent, view, and id Parameteris never used could be renamed to_ (Kotlin)

我正在使用 kotlin 在 andadroid studio 中做一个 lisview,但是当我创建 setOnItemClickListene 时,它​​告诉我从未使用过的 parent、view 和 id Parameteris 可以重命名为_,我不明白为什么我得到这个我的代码中的警告。 我应该怎么做才能删除此警告?

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val listapaises = arrayOf(
            "Colombia", "Argentina",
            "Ecuador", "Venezuela",
            "Brasil", "Paraguay", "Uruguay",
            "Bolivia", "Peru", "Chile"
        )
        val habitantes = arrayOf(
            40_000_000, 17_000_000,
            6_500_000, 10_000_000,
            30_000_000, 14_000_000,
            183_000_000, 44_000_000,
            31_000_000, 3_500_000
        )
        val adaptador1 =
            ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listapaises)
        lv_lista.adapter = adaptador1

        lv_lista.setOnItemClickListener { parent, view, position, id ->
            tv_resultado.text = ("${habitantes[position]}")
        }

    }
}

参见下面的代码:

lv_lista.setOnItemClickListener { parent, view, position, id ->
    tv_resultado.text = ("${habitantes[position]}")
}

现在,您看到的警告是因为在本例中未使用的三个 lambda 参数 - parentviewid.

它要你做的是用_替换这三个未使用的参数。这将删除未使用的参数警告,并且在参数为空且标记为非空的情况下还将防止 IllegalArgumentException

official docs 声明参数不用时可以用 _ 代替。因此,您要做的就是将代码更改为:

lv_lista.setOnItemClickListener { _, _, position, _->
    tv_resultado.text = ("${habitantes[position]}")
}

如果您想保留它们以备将来参考,您可以使用 @Suppress("UNUSED_PARAMETER") 取消警告。