首页 > 解决方案 > 如何通过单击 ListView 中一项的可见性进行更改

问题描述

我需要为过滤片段选择一个参数,所以当用户单击列表项时出现复选标记(只能选择一个参数)。怎么办,我做错了什么?

class FilterAdapter(private val parameters: ArrayList<String>) : BaseAdapter() {

override fun getCount() = parameters.size

override fun getItem(position: Int) = parameters[position]

override fun getItemId(position: Int) = position.toLong()

override fun getView(position: Int, p1: View?, parent: ViewGroup?): View {
    val rowView = LayoutInflater.from(parent?.context).inflate(R.layout.parameter_item, parent, false)
    val parameter = getItem(position)
    if (position == 0) rowView.check_icon.visibility = View.VISIBLE
    rowView.parameter_container.setOnClickListener {
        rowView.check_icon.visibility = View.INVISIBLE
        when(position) {
            0 -> rowView.check_icon.visibility = View.VISIBLE
            1 -> rowView.check_icon.visibility = View.VISIBLE
            2 -> rowView.check_icon.visibility = View.VISIBLE
            3 -> rowView.check_icon.visibility = View.VISIBLE
            4 -> rowView.check_icon.visibility = View.VISIBLE
        }
    }
    rowView.param.text = parameter
    return rowView
}

标签: androidkotlin

解决方案


推荐阅读