recyclerview点击item跳转Activity页面 kotlin
时间: 2023-08-23 20:06:07 浏览: 185
好的,以下是 Kotlin 代码示例:
1. 在 RecyclerView 的 Adapter 中为每个 item 添加点击事件监听器:
```kotlin
class MyAdapter(private val context: Context, private val itemList: List<Item>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
// 1. 定义一个点击事件监听器接口
interface OnItemClickListener {
fun onItemClick(item: Item)
}
// 2. 声明一个 OnItemClickListener 变量
private var listener: OnItemClickListener? = null
// 3. 提供一个公共的设置监听器的方法
fun setOnItemClickListener(listener: OnItemClickListener) {
this.listener = listener
}
// ...
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = itemList[position]
holder.bind(item)
// 4. 为 item 添加点击事件监听器
holder.itemView.setOnClickListener {
listener?.onItemClick(item)
}
}
// ...
}
```
2. 在 Activity 中设置 RecyclerView 和 Adapter,并实现 OnItemClickListener 接口:
```kotlin
class MainActivity : AppCompatActivity(), MyAdapter.OnItemClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val itemList = // 从数据源中获取 item 列表
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
recyclerView.layoutManager = LinearLayoutManager(this)
val adapter = MyAdapter(this, itemList)
recyclerView.adapter = adapter
// 5. 设置 OnItemClickListener
adapter.setOnItemClickListener(this)
}
// 6. 实现 OnItemClickListener 接口的方法,跳转到相应的 Activity
override fun onItemClick(item: Item) {
val intent = Intent(this, ItemDetailActivity::class.java)
intent.putExtra("item_id", item.id)
startActivity(intent)
}
}
```
以上就是 Kotlin 中 RecyclerView 点击 item 跳转到 Activity 页面的实现方法。
阅读全文