如何解决如何在Recycler View中使用Spinner?
伙计们。在过去的日子里,我一直在苦苦挣扎,因为我想实现一个Recycler View,它基本上只是一个Spinner,将根据所计数的用户数量出现。事实是,我从未在回收器视图中使用微调器,并且我认为它与String相同,但事实并非如此。
当我使用字符串时,我遵循的步骤与普通的Recycler View相同
我已经创建了一个模型类(Porcentaje.kt)
import android.widget.Spinner
class Porcentaje (var porcent: Spinner)
然后,适配器(Adapter)内部的Adapted(porcentajeAdapter.kt)位于顶部
class porcentajeAdapter(private var mContext: Context,var califList:ArrayList<Porcentaje>,var numCalif: Int): RecyclerView.Adapter<porcentajeAdapter.porcentaje>() {
lateinit var prefs: SharedPreferences
lateinit var editor: SharedPreferences.Editor
lateinit var prefs2: SharedPreferences
lateinit var editor2: SharedPreferences.Editor
class porcentaje(itemView: View) : RecyclerView.ViewHolder(itemView) {
var spinner: Spinner = itemView.findViewById(R.id.sp_ca)
}
override fun getItemCount(): Int {
return califList.size
}
override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): porcentaje {
val vista: View =
LayoutInflater.from(parent.context).inflate(R.layout.fragment_frag_her,parent,false)
prefs = mContext.getSharedPreferences("Herramientas",Context.MODE_PRIVATE)
editor = prefs.edit()
prefs2 = mContext.getSharedPreferences("TiendaShare",Context.MODE_PRIVATE)
editor2 = prefs.edit()
return porcentaje(vista)
}
override fun onBindViewHolder(holder: porcentaje,position: Int) {
val porcentaje: Porcentaje = califList[position]
holder.spinner = porcentaje.porcent
}}
然后将RV传递给我的片段
class fragHer(var nCalif: Int) : Fragment() {
var califList = ArrayList<Porcentaje>()
var spCalif: Spinner?=null
lateinit var adapter: porcentajeAdapter
lateinit var prefs: SharedPreferences
lateinit var editor: SharedPreferences.Editor
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
}
}
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
var vista = inflater.inflate(R.layout.fragment_frag_her,container,false)
val context = vista.context
prefs = context.getSharedPreferences("Herramientas",Context.MODE_PRIVATE)
prefs.getInt("NumAsesores",0).let {
if (it== 0) initData()
else init(it)
}
//findViews
spGerente = vista.findViewById(R.id.spGerente)
spCalif = vista.findViewById(R.id.sp_ca)
//RV
adapter = porcentajeAdapter(context,califList,nCalif)
val rvObject: RecyclerView = vista.findViewById(R.id.rv_pAsesor)
rvObject.adapter = adapter
rvObject.layoutManager = LinearLayoutManager(context)
rvObject.setHasFixedSize(true)
return vista
}
private fun initData() {
spCalif?.let { Porcentaje(it) }?.let { califList.add(it) }
}
private fun init(ases: Int){
for (x in 0 until ases){
spCalif?.let { Porcentaje(it) }?.let { califList.add(it) }
}
}
不过,它似乎不起作用。
我的微调器也在从字符串中检索数组列表。
在RV内使用微调器的任何提示吗? 你们可以看到,这是在Kotlin,但是任何帮助将不胜感激
谢谢(:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)