为什么在recyclerview的适配器中无法使用startActivityForResult

郭霖,您好:

在学习完Intent之后我使用recyclerview想要实现一个在好友列表显示最新消息的功能,却发现无法在适配器中使用startAtivityForResult方法,导致无法通过Intent携带数据回调上一个Activity
问题代码如下:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.msg_item, parent, false)
val holder = ViewHolder(view)
holder.itemView.setOnClickListener {
val position = holder.adapterPosition
val msg = MsgList[position]
val intent = Intent(context, ChatActivity::class.java).apply {
putExtra(ChatActivity.FRIEND_NAME, msg.name)
}
context.startActivityForResult(intent, 1) //问题代码
}
return holder
}

运行结果及报错内容

无法使用显示红

我的解答思路和尝试过的方法
我想要达到的结果

实现跳转并可以回传数据

可以的,只是Context不行,需要把Context转为Activity,或者干脆传一个进去都可以

img