有这样的适配器吗?
class HeroesRecyclerAdapter(val context: Context, val heroes: List<TestHero>): RecyclerView.Adapter<HeroesRecyclerAdapter.Holder>() {
inner class Holder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val heroesName = itemView?.findViewById<TextView>(R.id.textHeroView)
fun bindHeroes (hero: TestHero, context: Context){
//heroesName?.text = hero.legends.all.keys.first()
for((key) in hero.legends.all){
Log.d("HeroesActivity", key)
//holder.heroesName?.text = key
heroesName?.text = key
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
val view = LayoutInflater.from(context).inflate(R.layout.list_hero_view, parent, false)
return Holder(view)
}
override fun onBindViewHolder(holder: Holder, position: Int) {
holder?.bindHeroes(heroes[position], context)
}
override fun getItemCount(): Int {
return heroes.count()
}
}
当循环填充TextView时,数据被覆盖,只显示数组的最后一个值,如何正确显示数组中一列中的所有数据,以便进一步从列表中选择一个类别?
data class TestHero (@SerializedName("global") val global: PlayerInf,
@SerializedName("legends")val legends: AllLegends)
data class PlayerInf (val name: String, val uid: Long, val avatar: String, val platform: String,
val level: Int, val toNextLevelPercent: Int, val internalUpdateCount: Int, val bans: BanInf, val rank: RankInf)
data class BanInf (val isActive: Boolean, val remainingSeconds: Int)
data class RankInf (val rankScore: Int, val rankName: String, val rankDiv: Int, val rankImg: String)
data class AllLegends (@SerializedName("all") val all: Map<String, LegendWrapper> = emptyMap())
data class LegendWrapper(
val data: List<PlayerPerformance>? = emptyList()
)
data class PlayerPerformance(val name: String, val value: Int, val key: String)
如果在不使用数组的情况下更改代码,那么我将获得 1 个字段中的所有键
class TestRecyclerAdapter(val cont: Context): RecyclerView.Adapter<TestRecyclerAdapter.Holders>() {
var heroes: List<AllLegends> = emptyList()
inner class Holders(itemView: View) : RecyclerView.ViewHolder(itemView) {
val heroesName = itemView?.findViewById<TextView>(R.id.textHeroView)
fun bindHeroes (hero: AllLegends, context: Context){
heroesName?.text = hero.all.keys.toString()
}
}
我是通过下面的方式解决的,不知道对不对,想听听更多有经验的人的意见,下面我给出整个代码:适配器本身
英雄活动
我不知道这段代码的实现有多正确,但我会附上截图的结果。
知道如何做得更好的人,请写信,我不想在错误的情况下立即学习语言。谢谢
试试这样: