我希望点击Fragment
的{{1}}项,从Activity
转到Fragment
。 RecyclerView
适配器是在单独的类中创建的,因此在RecyclerView
部分的该类中,我必须编写setOnClickListener{}
部分。
Intent
您可能已经猜到的问题是holder.itemView.setOnClickListener{
val intent = Intent(MainActivity.getActivity(),DetailsActivtiy::class.java)
intent.putExtra("ImageUrl", uri)
MainActivity.getActivity().startActivity(intent)
}
。
我尝试从MainActivty.getActivity()
通过Fragment
而不是onButtonClick
的方法,我只编写了MainActivty.getActivity()
并且它工作得很好但是它在activity
适配器中不起作用,因为它是非活动课。如何解决我的问题?
最好,亚美尼亚。
答案 0 :(得分:2)
您实际上不需要Activity
来启动Intent
,您需要Context
。例如,您可以获取观看者Context
的{{1}},如下所示:
itemView
或者,您可以引入一个侦听器机制并通知包含已单击项目的适配器的holder.itemView.setOnClickListener {
val context = holder.itemView.context
val intent = Intent(context,DetailsActivtiy::class.java)
intent.putExtra("ImageUrl", uri)
context.startActivity(intent)
}
,并让Fragment
启动相应的Fragment
。