让“回收者视图”项目在文本视图中显示其位置

时间:2020-10-02 05:58:45

标签: kotlin android-recyclerview position

我有一个包含三个文本视图的回收者视图,我希望一个文本视图用作添加到回收者视图的每个新商品的计数器。因此,第一个项目应显示1,第二个项目应显示2,依此类推。到目前为止,我已经尝试过使用该位置,但是它显示了每个项目的位置总数,这意味着如果回收站中有4个项目,则显示所有4个位置中的第4个。

设置的文本视图应显示位置。

这是适配器:

class TrackAdapter(private val context: Context) : RecyclerView.Adapter<TrackAdapter.SetViewHolder>() {

private val inflater: LayoutInflater = LayoutInflater.from(context)
private var todayExercises = emptyList<WorkoutTable>() // Cached copy of words
var mName: String?=null

inner class SetViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val sets: TextView = itemView.findViewById(R.id.tvSets)
    val weight: TextView = itemView.findViewById(R.id.tvWeight)
    val reps: TextView = itemView.findViewById(R.id.tvReps)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):SetViewHolder {
    val itemView = inflater.inflate(R.layout.track_item, parent, false)
    return SetViewHolder(itemView)
}

override fun onBindViewHolder(holder: SetViewHolder, position: Int) {
    val current = todayExercises[position]
    val sets = todayExercises.size   //attempt to get position for counter

    holder.sets.text = (sets.toString() + " set")  //this is where i tried setting the position
    holder.weight.text = (current.weight.toString() + " lbs")
    holder.reps.text = (current.reps.toString() + " reps")

    holder.itemView.setOnClickListener {




    }

}

internal fun setExercises(exercises: List<WorkoutTable>) {
    this.todayExercises = exercises
    notifyDataSetChanged()
}


override fun getItemCount() = todayExercises.size

}

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在阅读的集 todayExercises.size ,您需要列表的大小。相反,只需读取位置

答案 1 :(得分:0)

在每个textViews中的onBindViewHolder类中,获取Positions并使用nextInt对其进行递增,例如textView.get(position).nextInt(list.size())

相关问题