Javascript 数据类Kotlin中的条件
我听说kotlin中没有三元运算符,那么,如何在kotlin数据类中实现以下功能,但我只希望数据类中的一部分数据根据特定条件显示在recycler视图中 下面显示了如何在JS中执行此操作Javascript 数据类Kotlin中的条件,javascript,android,kotlin,conditional-operator,data-class,Javascript,Android,Kotlin,Conditional Operator,Data Class,我听说kotlin中没有三元运算符,那么,如何在kotlin数据类中实现以下功能,但我只希望数据类中的一部分数据根据特定条件显示在recycler视图中 下面显示了如何在JS中执行此操作 {online.map(function(item){ return ( <div key={item.uid} > {item.Gender== 'Male' ? <li > <
{online.map(function(item){
return (
<div key={item.uid} >
{item.Gender== 'Male' ?
<li >
<div><img src={item.photoURL}/><p><b>{item.displayName}</b></p></div>
</li>
: null}
</div>
)
})}
类BalAdapter(val上下文:context,私有val数据列表:ArrayList,私有val布局:Int):
RecyclerView.Adapter(){
lateinit变量侦听器:(UserInfo.Uids)->Unit
覆盖BindViewHolder(holder:holder,position:Int){
val项目=数据列表[位置]
持有者。绑定项目(项目)
holder.itemView.setOnClickListener{listener(项目)}
}
override onCreateViewHolder(父级:ViewGroup,viewType:Int):Holder{
val view=LayoutInflater.from(parent.context).充气(layout,parent,false)
报税表持有人(视图)
}
重写getItemCount():Int{
返回dataList.size
}
内部类持有者(视图:视图?):RecyclerView.ViewHolder(视图!!){
val recordCategory=view?.findViewById(R.id.itemImage)
val recordNote=view?.findViewById(R.id.firstname)
val recordAmount=view?.findViewById(R.id.lastname)
趣味bindItems(bal:UserInfo.Uids){
毕加索
.load(bal.photoURL)
.调整大小(100100)
.centerCrop()
.进入(记录类别)
recordNote?.text=bal.displayName
recordAmount?.text=bal.email
itemView.setOnClickListener{
invoke(UserInfo.Uids())
//recordDeleteImageView.imageb
}
}
}
}
条件是放在适配器中,还是放在包含recyclerView的fragment类中,还是放在填充数据类的类中?而如何实现呢?只需创建另一个方法来更新适配器中的值
class BalAdapter(val context: Context, private val dataList: ArrayList<UserInfo.Uids>, private val layout: Int) :
RecyclerView.Adapter<BalAdapter.Holder>() {
internal fun updateValue(userInfo: UserInfo) {
dataList = userInfo
notifyDataSetChanged()
}
}
为什么kotlin没有三元运算符,还有,你的问题是什么?我只希望数据类中的一部分数据根据特定条件显示在recycler视图中这就是你想要的答案
val result=online.map{it.Gender==“Male”}
result
应该是genderYes中带有Male
的用户返回列表,但在kotlin中,这是kotlin broThere没有列表,因为online
的online
来自javascript代码只需将online
替换为您的原始列表UserInfo
?请尝试一下,不要等待其他人回答我问,因为它说的是未解析引用:map
class BalAdapter(val context: Context, private val dataList: ArrayList<UserInfo.Uids>, private val layout: Int) :
RecyclerView.Adapter<BalAdapter.Holder>() {
lateinit var listener: (UserInfo.Uids) -> Unit
override fun onBindViewHolder(holder: Holder, position: Int) {
val item = dataList[position]
holder.bindItems(item)
holder.itemView.setOnClickListener { listener(item) }
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
val view = LayoutInflater.from(parent.context).inflate(layout, parent, false)
return Holder(view)
}
override fun getItemCount(): Int {
return dataList.size
}
inner class Holder(view: View?) : RecyclerView.ViewHolder(view!!) {
val recordCategory = view?.findViewById<ImageView>(R.id.itemImage)
val recordNote = view?.findViewById<TextView>(R.id.firstname)
val recordAmount = view?.findViewById<TextView>(R.id.lastname)
fun bindItems(bal: UserInfo.Uids) {
Picasso.get()
.load(bal.photoURL)
.resize(100, 100)
.centerCrop()
.into(recordCategory)
recordNote?.text = bal.displayName
recordAmount?.text = bal.email
itemView.setOnClickListener {
listener.invoke(UserInfo.Uids())
// recordDeleteImageView.imageb
}
}
}
}
class BalAdapter(val context: Context, private val dataList: ArrayList<UserInfo.Uids>, private val layout: Int) :
RecyclerView.Adapter<BalAdapter.Holder>() {
internal fun updateValue(userInfo: UserInfo) {
dataList = userInfo
notifyDataSetChanged()
}
}
val result = UserInfo.map { it.Gender == "Male" }
balAdapter.updateValue(result)