I am trying to implement a recyclerview using a fragment. But I am always getting this error I=and I cant figure it out. Any Help is appreciated.
Here is My code for data I am trying to put in a list:
public class ItemData {
public int BatImageUrl;
public String BatTitle;
public int getBatImageUrl() {
    return BatImageUrl;
}
public void setBatImageUrl(int batImageUrl) {
    BatImageUrl = batImageUrl;
}
public String getBatTitle() {
    return BatTitle;
}
public void setBatTitle(String batTitle) {
    BatTitle = batTitle;
}
public ItemData(int BatImageUrl,String BatTitle){
    this.BatImageUrl=BatImageUrl;
    this.BatTitle=BatTitle;
}
public List<ItemData> itemsData;
public void initializeData(){
    itemsData = new ArrayList<>();
    itemsData.add(new ItemData(R.drawable.batman2,"batman-1"));
    itemsData.add(new ItemData(R.drawable.batman,"batman-2"));
    itemsData.add(new ItemData(R.drawable.batman3,"batman-3"));
}
}
Here is My Adapter Code:
   public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
        private List<ItemData> itemsData;
    public MyAdapter(List<ItemData> itemData) {
        this.itemsData = itemData;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View BatmanView = LayoutInflater.from(parent.getContext()).inflate(R.layout.batman_cards,parent,false);
        ViewHolder viewHolder = new ViewHolder(BatmanView);
        return viewHolder;
    }
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {
        ItemData id = itemsData.get(position);
        viewHolder.BatImage.setImageResource(id.getBatImageUrl());
        viewHolder.BatTitle.setText(id.getBatTitle());
    }
    public class ViewHolder extends RecyclerView.ViewHolder {
        ImageView BatImage;
        TextView BatTitle;
        CardView cv;
        public ViewHolder(View itemView) {
            super(itemView);
            cv = (CardView) itemView.findViewById(R.id.bat_card);
             BatImage = (ImageView) itemView.findViewById(R.id.bat_image);
            BatTitle = (TextView) itemView.findViewById(R.id.bat_title);
        }
    }
    @Override
    public int getItemCount() {
        return itemsData.size();
    }
}
Here is My fragment code:
  public class BatmanFragment extends Fragment {
    List<ItemData> itemsData;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View BatmanView = inflater.inflate(R.layout.batman_fragment,container,false);
        return BatmanView;
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        RecyclerView batmanRecyclerview = (RecyclerView) getView().findViewById(R.id.batman_recycler_view);
        batmanRecyclerview.setHasFixedSize(true);
       GridLayoutManager gm = new GridLayoutManager(getActivity(),2);
        gm.setOrientation(GridLayoutManager.VERTICAL);
        batmanRecyclerview.setLayoutManager(gm);
        MyAdapter mAdapter = new MyAdapter(itemsData);
        batmanRecyclerview.setAdapter(mAdapter);
        batmanRecyclerview.setItemAnimator(new DefaultItemAnimator());
    }
}
And Finally My MainActivity:
    public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BatmanFragment fragmentS1 = new BatmanFragment();
        getSupportFragmentManager().beginTransaction().replace(R.id.your_placeholder, fragmentS1).commit();
    }
}
 
     
     
    