让 Recycler View Items 在文本视图中显示它们的位置
Let Recycler View Items display their position in a text View
我有一个包含三个文本视图的回收站视图,我希望一个文本视图用作添加到回收站视图的每个新项目的计数器。所以第一项应该显示 1,第二项应该显示 2 等等。到目前为止,我已经尝试使用这个位置,但它显示每个项目的总位置,这意味着如果回收站中有 4 个项目,它会显示他们4个人的位置都是4。
设置的Text View就是应该显示的位置。
这是适配器:
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
}
谢谢!
您正在阅读的集合todayExercises.size,您要求的是列表大小。相反,只需阅读位置
在你的 onBindViewHolder class 中,在每个 textViews 中获取 Positions 并用 nextInt 增加它,比如 textView.get(position).nextInt(list.size())
我有一个包含三个文本视图的回收站视图,我希望一个文本视图用作添加到回收站视图的每个新项目的计数器。所以第一项应该显示 1,第二项应该显示 2 等等。到目前为止,我已经尝试使用这个位置,但它显示每个项目的总位置,这意味着如果回收站中有 4 个项目,它会显示他们4个人的位置都是4。
设置的Text View就是应该显示的位置。
这是适配器:
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
}
谢谢!
您正在阅读的集合todayExercises.size,您要求的是列表大小。相反,只需阅读位置
在你的 onBindViewHolder class 中,在每个 textViews 中获取 Positions 并用 nextInt 增加它,比如 textView.get(position).nextInt(list.size())