Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数据类Kotlin中的条件_Javascript_Android_Kotlin_Conditional Operator_Data Class - Fatal编程技术网

Javascript 数据类Kotlin中的条件

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 > <

我听说kotlin中没有三元运算符,那么,如何在kotlin数据类中实现以下功能,但我只希望数据类中的一部分数据根据特定条件显示在recycler视图中

下面显示了如何在JS中执行此操作

 {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)