수원통학러
528
2020-01-23 18:27:30
2
304

안드로이드 리사이클러뷰 체크박스 체크갯수 카운트



class CardRecyclerViewAdapter(
private val context: Context,
private val listItems: List<ItemDummy>
) : RecyclerView.Adapter<CardRecyclerViewAdapter.ItemViewHolder>() {

private var listener: SimpleItemClickListener<String>? = null

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder =
ItemViewHolder(
LayoutInflater.from(context).inflate(R.layout.item_cardview, parent, false)
)

override fun onBindViewHolder(holder: ItemViewHolder, position: Int) =
holder.bind()

override fun getItemCount(): Int = listItems.size

fun setOnItemClickListener(listener: SimpleItemClickListener<String>) {
this.listener = listener
}
inner class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind() {
var item = listItems[adapterPosition]
itemView.phone_number?.text = item.phone_number
itemView.item_name?.text = item.item_name
itemView.special?.text = item.special
itemView.send_number?.text = item.send_number
itemView.receive_number?.text = item.receive_number

itemView.setOnSingleClickListener {
itemView.checkBox.isChecked = !itemView.checkBox.isChecked
SLXPrefs.checkBoxCheck = itemView.checkBox.isChecked
listener?.onClick(adapterPosition, listItems[adapterPosition].toString())
}
}
}
}



리사이클러뷰의 바인드뷰홀더부분인데 일단 이렇게 해봤는데요..


제가 원하는건 체크가 하나라도 있으면 a 상황 하나도없으면 b상황을 주려고 합니다


저렇게하면 일단 하나체크하고 하나풀면 문제가없지만 2개체크하고 하나만 풀면 false가 나와서 b상황으로 갑니다.. 여기서 어떻게 체크 한 갯수를 가져와야될지 모르겠습니다


0
0
  • 답변 2

  • 에러뜨지마라ㅠ
    406
    2020-01-23 19:39:44

    클릭 리스너 이용해서 리사이클러뷰 있는 액티비티에 int 플러스나 마이너스 해주면 될 거같은데요??

    Check가 됐으면 true넘겨주고 그러면 rv포함한 액티비티에서 int를 ++ 아니면 --해주고 그러다 int가 0이 됐을때 b상황을 쓰다보니까 좀 이상한데 암튼 그러면 되지 않을까요?

    0
  • 수원통학러
    528
    2020-01-23 19:48:08

    에러뜨지마라ㅠ 

    그방법은 생각못했었네요 하니 해결되었습니다 감사합니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.