我正在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]}")
}
}
}
请参阅以下代码:
lv_lista.setOnItemClickListener { parent, view, position, id ->
tv_resultado.text = ("${habitantes[position]}")
}
现在,警告您是因为三个lambda参数在本例中没有使用--parent
,view
和id
。
它希望您做的是用_
替换这三个未使用的参数。 这将删除未使用的参数警告,并且在参数为null且标记为非null的情况下,还将防止IllegalArgumentException
。
官方文档指出,参数在不使用时可以用_
替换。 因此,您要做的是将代码改为:
lv_lista.setOnItemClickListener { _, _, position, _->
tv_resultado.text = ("${habitantes[position]}")
}
如果希望保留它们以备将来引用,可以使用@suppress(“unused_parameter”)
取消警告。