提问者:小点点

从未使用过的parent,view和id参数可以重命名为_(Kotlin)


我正在andadroid studio中与kotlin一起开发lisview,但是当我创建setOnItemClickListene时,它显示parent,view和id参数从未使用过,可以重命名为_,我不明白为什么在代码中会出现这个警告。 我应该怎么做才能删除此警告?

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]}")
        }

    }
}

共1个答案

匿名用户

请参阅以下代码:

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

现在,警告您是因为三个lambda参数在本例中没有使用--parentviewid

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

官方文档指出,参数在不使用时可以用_替换。 因此,您要做的是将代码改为:

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

如果希望保留它们以备将来引用,可以使用@suppress(“unused_parameter”)取消警告。