Ich arbeite mit Retrofit zum Abrufen von Daten vom Server in Fragmenten. Aber die App manchmal mit dem folgenden Fehler in logcat abgestürzt wird:Fragment wird manchmal während der Umschaltung gelöst
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' on a null object reference
at com.adarsh.quoteit.fragment.Frnd$1.onResponse(Frnd.java:60)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:66)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5692)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
in jedem Fragmente aufgrund Das ist die Klasse für fragment..every Fragment arbeitet an demselben Konzept und gleiche Fehler kommen, auf denen die App abgestürzt sind. Mein Fragment Klasse ist wie folgt:
public class Motive extends Fragment {
private RecyclerView motiveRecycler;
private QuoteAdapter motiveAdapter;
private List<QuoteList> qItems;
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View motive_view = inflater.inflate(R.layout.fragment_motivation, container, false);
motiveRecycler = (RecyclerView) motive_view.findViewById(R.id.rv_motiv);
motiveRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
loadJSON();
return motive_view;
}
private void loadJSON() {
qItems = new ArrayList<>();
Retrofit retrofit = new Retrofit.Builder().baseUrl("http://velapanti.esy.es")
.addConverterFactory(GsonConverterFactory.create())
.build();
MotiveApi requestInterface = retrofit.create(MotiveApi.class);
Call<List<QuoteList>> call = requestInterface.getJSON();
call.enqueue(new Callback<List<QuoteList>>() {
@Override
public void onResponse(Call<List<QuoteList>> call, Response<List<QuoteList>> response) {
qItems = response.body();
/*if(!isAdded()) {
Fragment
}*/
motiveAdapter = new QuoteAdapter(getActivity().getApplicationContext(), qItems);
motiveRecycler.setAdapter(motiveAdapter);
}
@Override
public void onFailure(Call<List<QuoteList>> call, Throwable t) {
}
});
}
}