Firebase 从回收器视图中选择用户数据后,将其加载到新活动中
我的应用程序当前显示一个循环视图,其中包含使用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
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")
} }