I have a two fragment on MainActivity.
First, YellowFragment
public class YellowFragment extends Fragment implements FlowerAdapter.FlowerClickListener{
    private SwipeRefreshLayout swipeContainer_yellow;
    private RecyclerView mRecyclerView;
    private RestManager mRestManager;
    private FlowerAdapter mFlowerAdapter;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_yellow, container, false);
        swipeContainer_yellow = (SwipeRefreshLayout) view.findViewById(R.id.swipeContainer_yellow);
        swipeContainer_yellow.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                mRestManager = new RestManager();
                Call<List<Flower>> listCall = mRestManager.getmFlowerApiService(getActivity()).getAllFlowers();
                listCall.enqueue(new Callback<List<Flower>>() {
                    @Override
                    public void onResponse(Call<List<Flower>> call, Response<List<Flower>> response) {
                        if (response.isSuccessful()) {
                            mFlowerAdapter.clear();
                            List<Flower> flowerList = response.body();
                            for(int i =0; i<flowerList.size(); i++) {
                                Flower flower = flowerList.get(i);
                                mFlowerAdapter.addFlower(flower);
                            }
                            swipeContainer_yellow.setRefreshing(false);
                        }
                    }
                    @Override
                    public void onFailure(Call<List<Flower>> call, Throwable t) {
                    }
                });
            }
        });
        configViews(view);
        return view;
    }
    private void configViews(View view) {
        mRecyclerView = (RecyclerView) view.findViewById(R.id.rv_flower_yellow);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setRecycledViewPool(new RecyclerView.RecycledViewPool());
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity().getApplicationContext(), LinearLayoutManager.VERTICAL, false));
        mFlowerAdapter = new FlowerAdapter(this);
        mRecyclerView.setAdapter(mFlowerAdapter);
    }
}
Second, RedFragment
(it's all the same with YellowFragment, but swipeContainer_yellow, rv_flower_yellow,LinearLayoutManager  changed to swipeContainer_red, rv_flower_red, GridLayoutManager)
public class RedFragment extends Fragment {
    private SwipeRefreshLayout swipeContainer_red;
    private RecyclerView mRecyclerView;
    private RestManager mRestManager;
    private FlowerAdapter mFlowerAdapter;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_red, null);
        swipeContainer_red = (SwipeRefreshLayout) view.findViewById(R.id.swipeContainer_red);
        swipeContainer_red.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                mRestManager = new RestManager();
                Call<List<Flower>> listCall = mRestManager.getmFlowerApiService(getActivity()).getAllFlowers();
                listCall.enqueue(new Callback<List<Flower>>() {
                    @Override
                    public void onResponse(Call<List<Flower>> call, Response<List<Flower>> response) {
                        if (response.isSuccessful()) {
                            mFlowerAdapter.clear();
                            List<Flower> flowerList = response.body();
                            for(int i =0; i<flowerList.size(); i++) {
                                Flower flower = flowerList.get(i);
                                mFlowerAdapter.addFlower(flower);
                            }
                            swipeContainer_red.setRefreshing(false);
                        }
                    }
                    @Override
                    public void onFailure(Call<List<Flower>> call, Throwable t) {
                    }
                });
            }
        });
        configViews(view);
        return view;
    }
    private void configViews(View view) {
        mRecyclerView = (RecyclerView) view.findViewById(R.id.rv_flower_red);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setRecycledViewPool(new RecyclerView.RecycledViewPool());
        mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity().getApplicationContext(), 3));
        mFlowerAdapter = new FlowerAdapter(this); #Here is problem
        mRecyclerView.setAdapter(mFlowerAdapter);
    }
}
But in RedFragment,
Why this happend?
Some part of FlowerAdpater
public class FlowerAdapter extends RecyclerView.Adapter<FlowerAdapter.Holder> {
    public FlowerAdapter(FlowerClickListener listener) {
        mFlowers = new ArrayList<>();
        mListener = listener;
    }
    public interface FlowerClickListener {
        void onClick(int position);
    }
}
I first tried to make two fragment having the same data(which is came from my RESTapi server using retrofit2) just on different view (Gridlayout and Linearlayout).
But i gave it up. Because it seemed too hard for me.
If there is a good way of depending on my first trying, i would be very thanks.
Anyway, why that error happened?
Please let me know hint.

 
     
    