【发布时间】:2019-02-06 11:33:51
【问题描述】:
我有以下片段,其中有一个 RecyclerView 和一个 ListAdapter 用户:
....
private fun setupList(users: List<User>) {
recyclerView.layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
val adapter = UsersAdapter {
Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show()
}
recyclerView.adapter = adapter
adapter.submitList(users)
}
....
这里是UsersAdapter的相关部分:
....
class FlightItemViewHolder(itemView: View, _context: Context) : RecyclerView.ViewHolder(itemView) {
val context = _context
fun bind(item: User, clickListener: (User) -> Unit) {
itemView.name_value.text = item.fullName
itemView.country_value.text = item.country
itemView.seats_value.text = item.subscriptionSeats.toString()
itemView.setOnClickListener { clickListener(item) }
}
}
....
toast 显示正常,但我想获取单击的元素或其位置,以便调用并显示 Detail 片段(而不是显示 toast)。
【问题讨论】:
-
你在点击监听器中传递你的项目,当你在活动中实现监听器时应该能够得到它。
标签: android kotlin listadapter