Параметры parent, view и id, которые никогда не использовались, можно переименовать в _ (Kotlin) - PullRequest
0 голосов
/ 21 июня 2020
• 1000 предупреждение в моем коде. Что мне делать, чтобы удалить это предупреждение?
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 Ответ

1 голос
/ 21 июня 2020

См. Приведенный ниже код:

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

Теперь предупреждение, которое вы видите, связано с тремя параметрами лямбда, которые в данном случае не используются - parent, view и id.

Он хочет, чтобы вы заменили эти три неиспользуемых параметра на _. Это удалит предупреждения о неиспользуемых параметрах, а также предотвратит IllegalArgumentException в случае, если параметр был равен нулю и был помечен как ненулевой.

Официальные документы заявляют, что параметры могут быть заменяется на _, когда не используется. Итак, что вам нужно сделать, так это изменить свой код на:

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

Если вы хотите сохранить их для использования в будущем, вы можете использовать @Suppress("UNUSED_PARAMETER") для подавления предупреждения.

...