不在RecyclerView中的ViewHolder上显示getSupportFragmentManager

Dae*_*ang 8 fragment android-recyclerview

ViewHolder,我不能打电话getSupportFragmentManager.

我想在片段之间切换

我搜索了所有的谷歌页面.但我找不到它.

public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

    public ImageView imgThumbnail;//img
    public TextView tvspecies; //text

    public ViewHolder(View itemView) {
        super(itemView);

        imgThumbnail = (ImageView)itemView.findViewById(R.id.img_thumbnail);
        tvspecies = (TextView)itemView.findViewById(R.id.tv_species);

        itemView.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {/*?? ????? ????*/

        Fragment fm=new NewsFragment();
        FragmentTransaction transaction=fm.getFragmentManager().beginTransaction();
        transaction.replace(R.id.Linearcontainer, fm);
        transaction.addToBackStack(null);
        transaction.commit();

    }//onClick


}//ViewHolder
Run Code Online (Sandbox Code Playgroud)

小智 14

试试这个吧

public HorizontalProductAdapter(Activity context, List<RecycleIndividualProduct>data, FragmentManager fragmentManager){
        inflater = LayoutInflater.from(context);
        this.subActivityData = data;
        this.fragmentManager=fragmentManager;
}
Run Code Online (Sandbox Code Playgroud)

并从您的活动或片段调用您的适配器

 mAdapter = new HorizontalProductAdapter(getActivity(),allDeals,getFragmentManager());
Run Code Online (Sandbox Code Playgroud)


Jun*_*eez 0

只需执行此操作,从实例化适配器的活动或片段传递 getSupportFragmentManager,并在适配器类构造函数中执行此操作。

 public ViewHolder(View itemView, FragmentManager fragmentManager) {
        super(itemView);

        imgThumbnail = (ImageView)itemView.findViewById(R.id.img_thumbnail);
        tvspecies = (TextView)itemView.findViewById(R.id.tv_species);
        this.fragmentManager = fragmentManager
        itemView.setOnClickListener(this);

    }
Run Code Online (Sandbox Code Playgroud)