Fragment code:

public class ResultsFragment extends Fragment { private String id; private RecyclerView recyclerView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_results, container, false); ActivityFragments activityFragments = (ActivityFragments) getActivity(); id = activityFragments.getMyData(); // AllResultPresenter allResultPresenter = new AllResultPresenter(id,ResultsFragment.this); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { // super.onViewCreated(view, savedInstanceState); recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_all); recyclerView.setHasFixedSize(true); final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(linearLayoutManager); AllResultPresenter allResultPresenter = new AllResultPresenter(id,ResultsFragment.this); } public void showAllResult(ArrayList<Result> allResultResponses) { recyclerView.setAdapter(new AllResultsAdapter(this, allResultResponses)); } } 

And here is the Presenter code:

 public class AllResultPresenter { private ResultsFragment resultsFragment; private ArrayList<Result> results; private String id; public AllResultPresenter(String mId, final ResultsFragment mResultsFragment) { this.id = mId; this.resultsFragment = mResultsFragment; results = new ArrayList<>(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://asthmacare.ru/") .addConverterFactory(GsonConverterFactory.create()) .build(); retrofit.create(API.class).getAllResultResponse(id).enqueue(new Callback<AllResultResponse>() { @Override public void onResponse(Call<AllResultResponse> call, Response<AllResultResponse> response) { //ArrayList<allRes> = response.body().getResults(); results = response.body().getResults(); resultsFragment.showAllResult(results); } @Override public void onFailure(Call<AllResultResponse> call, Throwable t) { } }); } } 

For some reason the error takes off:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize (boolean)' on a null object reference

  • Make after installing LayoutManager - pavel163
  • @ pavel163 what to do? - Martinez Toni
  • recyclerView.setHasFixedSize (true); - pavel163

1 answer 1

First do recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_all); better in onCreateView . And since he does not find a view, it means that you need to check the id of this RecyclerView in R.layout.fragment_results .

  • I have a hotel hub in which RelativeLayout, and in it Recycler View. RelativeLayout has the following parameters: showIn: Fragment markup and Context: Activity Fragment. - Martinez Toni
  • I understand it. Is the NPE still crashing? - Arnis Shaykh