J'essaie toujours de comprendre le recyclage. J'ai une arraylist, que j'utilise pour initialiser une vue de recycleur avec.
Comment puis-je ajouter de nouveaux éléments au poste de vue du recycleur en définissant un adaptateur et un gestionnaire de disposition?
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);
}
}
Donc, fondamentalement, après moi initdata()
et initRecyclerView()
, comment puis-je ajouter un nouvel élément à RecyclerView ??
android
add
android-recyclerview
items
Shubham Kanodia
la source
la source
Réponses:
Ajoutez d'abord votre article à
mItems
, puis utilisez:cette méthode est meilleure que d'utiliser:
en performance.
la source
ajoutez simplement à votre structure de données (mItems), puis informez votre adaptateur du changement de jeu de données
la source
ArrayList<T>
devrez utiliser le type d'objet que vous souhaitez ajouter, par exempleArrayList<ViewGroup>
au lieu deArrayList<String>
. Ensuite, vous pouvez simplement changer le type d'argument deString
àViewGroup
. (Désolé pour necro).si vous ajoutez plusieurs éléments à la liste, utilisez ceci:
Cela informe tous les observateurs enregistrés que les éléments itemCount actuellement reflétés à partir de positionStart ont été nouvellement insérés. L'élément précédemment situé à positionStart et au-delà peut maintenant être trouvé à partir de la position positinStart + itemCount
élément existant dans l'ensemble de données toujours considéré à jour.
la source