Ich versuche immer noch, mich mit Recyclerview zu beschäftigen. Ich habe eine Arrayliste, mit der ich eine Recycler-Ansicht initialisiere.
Wie kann ich dem Beitrag der Recycler-Ansicht neue Elemente hinzufügen und einen Adapter und einen Layoutmanager festlegen?
private void initData() {
mItems = new ArrayList<String>();
for (int i = 0; i < ITEMS_COUNT; i++) {
mItems.add("Item " + (i + 1));
}
}
private void initRecyclerView() {
mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView);
mRecentRecyclerView.setHasFixedSize(true);
mRecentLayoutManager = new LinearLayoutManager(this);
mRecentRecyclerView.setLayoutManager(mRecentLayoutManager);
mAdapter = new RecyclerView.Adapter<CustomViewHolder>() {
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.notice_snippet
, viewGroup, false);
return new CustomViewHolder(view);
}
@Override
public void onBindViewHolder(CustomViewHolder viewHolder, int i) {
viewHolder.noticeSubject.setText(mItems.get(i));
}
@Override
public int getItemCount() {
return mItems.size();
}
};
mRecentRecyclerView.setAdapter(mAdapter);
private class CustomViewHolder extends RecyclerView.ViewHolder {
private TextView noticeSubject;
public CustomViewHolder(View itemView) {
super(itemView);
noticeSubject = (TextView) itemView.findViewById(R.id.notice_subject);
}
}
Also im Grunde, nachdem ich initdata()
und initRecyclerView()
, wie füge ich ein neues Element zum RecyclerView hinzu?
android
add
android-recyclerview
items
Shubham Kanodia
quelle
quelle
Antworten:
Fügen Sie zuerst Ihren Artikel hinzu
mItems
und verwenden Sie dann:Diese Methode ist besser als:
in der Leistung.
quelle
Fügen Sie einfach Ihre Datenstruktur (mItems) hinzu und benachrichtigen Sie dann Ihren Adapter über die Änderung des Datensatzes
quelle
ArrayList<T>
müssten den Objekttyp verwenden, den Sie hinzufügen möchten, z . B.ArrayList<ViewGroup>
anstelle vonArrayList<String>
. Dann können Sie einfach den Argumenttyp vonString
bis ändernViewGroup
. (Entschuldigung für Nekro).Wenn Sie der Liste mehrere Elemente hinzufügen, verwenden Sie Folgendes:
Dadurch werden registrierte Beobachter darüber informiert, dass die aktuell angezeigten itemCount-Elemente ab positionStart neu eingefügt wurden. Das Element, das sich zuvor bei positionStart und darüber hinaus befand, kann jetzt ab Position positinStart + itemCount gefunden werden
vorhandenes Element im Datensatz wird immer noch als aktuell betrachtet.
quelle