1
abgerufen werden
Ich versuche, die Datenliste asynchron zu laden und in RecyclerView in Fragmenten anzuzeigen. Die gleiche Implementierung funktioniert jedoch für die Aktivitätsklasse, schlägt aber fehl für das Fragment:Anzeigen von Daten, die asynchron in einer RecyclerView in Fragment
public class ItemThreeFragment extends Fragment {
String email;
private CompositeSubscription mSubscriptions;
HistoryAdapter historyAdapter;
RecyclerView recyclerView;
public static ItemThreeFragment newInstance() {
ItemThreeFragment fragment = new ItemThreeFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
email = ((BaseApplication) getActivity().getApplication()).getEmail();
mSubscriptions = new CompositeSubscription();
getUserHistory(email);
}
private void getUserHistory(String email) {
mSubscriptions.add(NetworkUtil.generic().getUserCheckinInfo(email)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleCheckInInfoResponse,this::handleError));
}
private void handleCheckInInfoResponse(List<Checkin> checkins) {
System.out.println(checkins);
historyAdapter = new HistoryAdapter(this.getActivity(), checkins);
recyclerView.setAdapter(historyAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
}
private void handleError(Throwable throwable) {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_item_three, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.historyList);
return rootView;
}
}
Jede Art von Vorschlägen wird sehr geschätzt.
Meine Liste wird in der Methode handleCheckInInfoResponse() aktualisiert und ich habe bereits die Zeilen dort drüben hinzugefügt. Ich habe das Programm bearbeitet, bitte schau es dir nochmal an. – Salam