[英]How can I change the color of the unselected and selected items on a RecyclerView on click?
我有一个 RecyclerView 适配器,可以为列表中的每个项目设置图标。 这是适配器类
package m.e.myapplication
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.calculator_cost_currency_type_item.view.*
class CurrencyTypeAdapter: RecyclerView.Adapter<CurrencyTypeViewHolder>() {
private val currencyTypeList = listOf(R.drawable.icon_currency_dollar, R.drawable.icon_currency_euro, R.drawable.icon_currency_lira)
override fun getItemCount(): Int {
return currencyTypeList.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CurrencyTypeViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val cellForRow = layoutInflater.inflate(R.layout.calculator_cost_currency_type_item, parent, false)
return CurrencyTypeViewHolder(cellForRow)
}
override fun onBindViewHolder(holder: CurrencyTypeViewHolder, position: Int) {
val currencyTypeItem = currencyTypeList[position]
holder.itemView.currencyTypeItemCostImageViewCCF.setImageResource(currencyTypeItem)
}
}
class CurrencyTypeViewHolder(view: View): RecyclerView.ViewHolder(view) {
}
这是从 MainActivity 调用它的方式
package m.e.myapplication
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
currencyTypeRecyclerViewCCF.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
currencyTypeRecyclerViewCCF.adapter = CurrencyTypeAdapter()
}
}
我想要更改与所选项目对应的布局颜色的代码,以及更改未选择项目颜色的代码。 提前致谢
首先在您的CurrencyTypeAdapter
类中创建字符串类型变量名称它selectedposition
var selectedposition=""
现在将位置标签添加到您的itemview
holder.itemview.tag="$position" //this is for to identify the itemview
现在在onBindViewHolder
方法holder.itemView.setOnClickListener{
selectedposition="$position"
notifyDataSetChanged()
}
中将 onClick 侦听器添加到您的 itemview
现在在 onBindViewHolder 方法中if(selectedposition.equal("$position")){ //this is your selected item do what you want }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.