Как открыть несколько разных фрагментов на разных предметах? - PullRequest
0 голосов
/ 15 апреля 2020

Я использую вид рециркулятора во фрагменте. У меня есть 4 пункта в моем списке просмотра переработчика. Теперь я хочу открыть 4 новых разных фрагмента. Здесь я могу открыть разные действия, но я хочу открыть 4 разных фрагмента вместо действий. Ниже приведен мой код RecyclerViewAdapeter. Пожалуйста, помогите мне.

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {

    Context mContext;
    List<HindiFragmentModel> mData;
    private MathFragment MathFragment;

    public RecyclerViewAdapter(Context mContext, List<HindiFragmentModel> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View v;
        v = LayoutInflater.from(mContext).inflate(R.layout.fragmentdesign,parent,false);
        MyViewHolder vHolder = new MyViewHolder(v);
        mContext = v.getContext();

        return vHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
        holder.tv_name.setText(mData.get(position).getName());
        holder.img.setImageResource(mData.get(position).getPhoto());

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               
               // here i want to open 4 new fragments..
               if (position == 0) {
                    Intent intent = new Intent(v.getContext(), NewHindiActivity.class);
                    v.getContext().startActivity(intent);
                }
                if (position == 1) {
                    Intent intent = new Intent(v.getContext(), NewHindiActivity1.class);
                    v.getContext().startActivity(intent);
                }
            }
        });

    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {
        private TextView tv_name;
        private ImageView img;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            tv_name = (TextView) itemView.findViewById(R.id.titleView);
            img = (ImageView) itemView.findViewById(R.id.imageView);
        }

    }

}

1 Ответ

0 голосов
/ 16 апреля 2020
holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            if(position == 0){
                Bundle args = Bundle()
                args.putString("id", Id)
                NewFragment newFragment = NewFragment()
                newFragment.setArguments(args)
        FragmentManager  fragmentManager =currentfragment.getFragmentManager()
        FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction()
                fragmentTransaction.add(R.id.frame, newFragment)
                fragmentTransaction.hide(currentfragment)
                fragmentTransaction.addToBackStack(null)
                fragmentTransaction.commit()
               }if(position == 1){
               //as mentioned above only the change is Fragment Instance
               }

               //write similar code for other positions      

          }
        });
...