当我使用要传递餐厅 ID 的意图将数据从回收器适配器传递到活动时,我的应用程序崩溃了
Posted
技术标签:
【中文标题】当我使用要传递餐厅 ID 的意图将数据从回收器适配器传递到活动时,我的应用程序崩溃了【英文标题】:my app is crashing when i am passing data from recycler adapter to activity using intents i want to pass restaurant id 【发布时间】:2021-12-28 18:47:44 【问题描述】:holder.llContent.setOnClickListener println(holder.txtRestaurantName.tag.toString())
val intent=Intent(context,RestaurantMenuActivity::class.java)
intent.putExtra("restaurantId",holder.txtRestaurantName.tag.toString())
intent.putExtra("restaurantName",holder.txtRestaurantName.text.toString())
context.startActivity(intent)
【问题讨论】:
这里的代码并不多,但我建议您使用 Activity 接口而不是 startActivity() 你能发布堆栈跟踪吗? 【参考方案1】:您可以在您的适配器中定义一个点击监听器函数,它可以从您的活动中调用。
首先将它添加到您的适配器类中:
private var onItemClickListener: ((YourDataModel) -> Unit)? = null
fun setOnItemClickListener(listener: ((YourDataModel) -> Unit))
onItemClickListener = listener
然后在您的适配器中,对于您要设置点击侦听器的view
,添加以下行:
view.setOnClickListener
onItemClickListener?.let it(dataModel)
注意:
dataModel
被认为是一个请求响应 Kotlin 对象,您可以传递任何其他参数(另一个普通函数:)),如餐厅 ID 或任何东西。
现在你可以像这样在你的活动中使用它:
adapter.setOnItemClickListener
// What you want to do
【讨论】:
以上是关于当我使用要传递餐厅 ID 的意图将数据从回收器适配器传递到活动时,我的应用程序崩溃了的主要内容,如果未能解决你的问题,请参考以下文章