getActivty()来自非活动类Kotlin
我想通过点击一个Fragment
的RecyclerView
项目从Fragment
到一个Activity
。 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
,它完美的工作,但它不适用于RecyclerView
适配器,因为它是非活动类。 如何解决我的问题? 最好的,阿门。
你实际上并不需要一个Activity
来启动一个Intent
,你需要一个Context
。 例如,你可以得到viewholder的itemView的Context
,如下所示:
holder.itemView.setOnClickListener { val context = holder.itemView.context val intent = Intent(context,DetailsActivtiy::class.java) intent.putExtra("ImageUrl", uri) context.startActivity(intent) }
或者,您可以引入一个侦听器机制,并通知包含适配器的Fragment
项目已被点击,然后让Fragment
启动相应的Intent
。