Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Firebase 从回收器视图中选择用户数据后,将其加载到新活动中_Firebase_Kotlin_Android Recyclerview - Fatal编程技术网

Firebase 从回收器视图中选择用户数据后,将其加载到新活动中

Firebase 从回收器视图中选择用户数据后,将其加载到新活动中,firebase,kotlin,android-recyclerview,Firebase,Kotlin,Android Recyclerview,我的应用程序当前显示一个循环视图,其中包含使用Firebase在系统中注册的用户的名称。 现在我需要让这个循环视图可以点击,点击用户名,打开一个新的活动,显示它的一些数据,例如用户名 class PacienteAdapter(internal var context: Context) : RecyclerView.Adapter<PacienteAdapter.ViewHolder>() { internal var userList: MutableList<P

我的应用程序当前显示一个循环视图,其中包含使用Firebase在系统中注册的用户的名称。 现在我需要让这个循环视图可以点击,点击用户名,打开一个新的活动,显示它的一些数据,例如用户名

class PacienteAdapter(internal var context: Context) : RecyclerView.Adapter<PacienteAdapter.ViewHolder>() {

    internal var userList: MutableList<PacienteRecycle>

    val lastItemId: String?
        get() = userList[userList.size - 1].id

    fun addAll(newUsers: List<PacienteRecycle>) {
        val init = userList.size
        userList.addAll(newUsers)
        notifyItemRangeChanged(init, newUsers.size)
    }

    init {
        this.userList = ArrayList()
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val itemView = LayoutInflater.from(context).inflate(R.layout.paciente_item, parent, false)
        return ViewHolder(itemView)
    }

    //context
    override fun getItemCount(): Int {
        return userList.size
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {

        holder.textViewName.text = userList[position].nome
        holder.itemView.setOnClickListener {

        }
    }


    inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        internal var textViewName = itemView.findViewById(R.id.nome) as TextView

    }

}
class PacientAdapter(内部变量上下文:context):RecyclerView.Adapter(){
内部var userList:MutableList
val lastItemId:字符串?
get()=userList[userList.size-1].id
fun addAll(新用户:列表){
val init=userList.size
userList.addAll(新用户)
notifyItemRangeChanged(init,newUsers.size)
}
初始化{
this.userList=ArrayList()
}
override onCreateViewHolder(父级:ViewGroup,viewType:Int):ViewHolder{
val itemView=LayoutInflater.from(上下文)。充气(R.layout.paciente_项,父项,false)
返回视图持有者(项目视图)
}
//上下文
重写getItemCount():Int{
返回userList.size
}
覆盖BindViewHolder(holder:ViewHolder,位置:Int){
holder.textViewName.text=userList[position].nome
holder.itemView.setOnClickListener{
}
}
内部类ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
内部变量textViewName=itemView.findViewById(R.id.nome)作为TextView
}
}

要使此循环视图可单击并在单击用户名时打开一个新活动,并显示其中的一些数据,您可以使用Intent,在name text视图上实现onClickListener,并将数据按如下方式放入其中:

class PacienteAdapter(internal var context: Context) : RecyclerView.Adapter<PacienteAdapter.ViewHolder>() {

internal var userList: MutableList<PacienteRecycle>

val lastItemId: String?
    get() = userList[userList.size - 1].id

fun addAll(newUsers: List<PacienteRecycle>) {
    val init = userList.size
    userList.addAll(newUsers)
    notifyItemRangeChanged(init, newUsers.size)
}

init {
    this.userList = ArrayList()
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val itemView = LayoutInflater.from(context).inflate(R.layout.paciente_item, parent, false)
    return ViewHolder(itemView)
}

//context
override fun getItemCount(): Int {
    return userList.size
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {

    holder.textViewName.text = userList[position].nome
    holder.textViewName.setOnClickListener {
        val intent = Intent()
            intent.setClass(context, YourActivity::class.java)

            //pass your data to the Activity
            intent.putExtra("yourDataKey1", "your-data1")
            intent.putExtra("yourDataKey2", "your-data2")
            intent.putExtra("clickedUserName", userList[position].nome)

            context.startActivity(intent)
    }
    holder.itemView.setOnClickListener {
        //put the same code here to make the whole item in the view clickable
    }
}


inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    internal var textViewName = itemView.findViewById(R.id.nome) as TextView 
} }

检查一下这个代码有什么问题?您有错误吗?是什么行为?非常感谢您,先生!我是kotlin的初学者,我只知道startActivity函数,不能直接使用它。我不知道这个setClass函数,现在一切正常,真的谢谢!来自巴西的拥抱!嘿,弗雷德,不客气。在这里询问任何关于Android、Kotlin、MVVM或任何东西的问题!我们都是来帮忙的!
class YourActivity : Activity() {

//data
private var receivedData1: String? = ""
private var receivedData2: String? = ""
private var clickedUserName String? = ""

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_single_pocmaps)

    receivedData1 = intent.extras?.getDouble("yourDataKey1")
    receivedData2 = intent.extras?.getDouble("yourDataKey2")
    clickedUserName = intent.extras?.getString("clickedUserName")
}  }