5

Ich habe eine JSON-Zeichenfolge, die ich in 4 Datensätze aufteilen, jeder Datensatz hat seine eigenen RecyclerView.Adapter.Merge mehrere RecyclerView.Adapter für die Verwendung mit einzelnen RecyclerView (Android)

Ich möchte alle Adapter in der gleichen RecyclerView ideal mit StickyHeaders für jeden Adapter ausgeben.

Ich glaube, das Listviews über CommonsWare der CWAC-Merge (https://github.com/commonsguy/cwac-merge)

Irgendwelche Ideen, wie diese kann oder sollte mit RecyclerView getan werden kann, mit getan werden? Ich bin ein amature Entwickler so je weniger abstrakt die Antwort, desto besser ;-D

Danke.

Antwort

0

ich für diese Bibliothek gehen würde: https://github.com/martijnvdwoude/recycler-view-merge-adapter

Überprüfen Sie die Dokumentation auf der Github Seite für Beispiele, wie diese in Ihrem Code zu verwenden.

Auszug aus der Readme:

RecyclerView myRecyclerView = (RecyclerView) view.findViewById(R.id.my_recycler_view); 

// Create new merge adapter 
RecyclerViewMergeAdapter mergeAdapter = new RecyclerViewMergeAdapter(); 

// Add any number of subadapters to merge adapter 
MyRecyclerViewSubAdapter subAdapter1 = new MyRecyclerViewSubAdapter(); 
MyRecyclerViewSubAdapter subAdapter2 = new MyRecyclerViewSubAdapter(); 

mergeAdapter.addAdapter(subAdapter1); 
mergeAdapter.addAdapter(subAdapter2); 

// Set merge adapter to RecyclerView 
myRecyclerView.setAdapter(mergeAdapter); 
0

können Sie schauen auf GroupAdapter

GroupAdapter.Builder builder = new GroupAdapter.Builder(); 
builder.add(firstAdapter); 
builder.add(secondAdapter); 
GroupAdapter groupAdapter = builder.build(); 
recyclerView.setAdapter(groupAdapter); 
0

Sie das erreichen mit nur einem Adapter: SectionedRecyclerViewAdapter. Mit dieser Bibliothek können Sie Ihre Artikel in Abschnitte gruppieren und optional Kopf- und/oder Fußzeilen hinzufügen.

class MySection extends StatelessSection { 

    String title; 
    List<String> list; 

    public MySection(String title, List<String> list) { 
     // call constructor with layout resources for this Section header, footer and items 
     super(R.layout.section_header, R.layout.section_item); 

     this.title = title; 
     this.list = list; 
    } 

    @Override 
    public int getContentItemsTotal() { 
     return list.size(); // number of items of this section 
    } 

    @Override 
    public RecyclerView.ViewHolder getItemViewHolder(View view) { 
     // return a custom instance of ViewHolder for the items of this section 
     return new MyItemViewHolder(view); 
    } 

    @Override 
    public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) { 
     MyItemViewHolder itemHolder = (MyItemViewHolder) holder; 

     // bind your view here 
     itemHolder.tvItem.setText(list.get(position)); 
    } 

    @Override 
    public RecyclerView.ViewHolder getHeaderViewHolder(View view) { 
     return new SimpleHeaderViewHolder(view); 
    } 

    @Override 
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder) { 
     MyHeaderViewHolder headerHolder = (MyHeaderViewHolder) holder; 

     // bind your header view here 
     headerHolder.tvItem.setText(title); 
    } 

    public void addRow(String item) { 
     this.list.add(item); 
    } 

} 

Dann richten Sie das RecyclerView mit den Abschnitten:

// Create an instance of SectionedRecyclerViewAdapter 
SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter(); 

// Create your sections with the list of data 
MySection section1 = new MySection("Header of section 1", section1List); 
MySection section2 = new MySection("Header of section 2", section2List); 

// Add your Sections to the adapter 
sectionAdapter.addSection(section1); 
sectionAdapter.addSection(section2); 

// Set up your RecyclerView with the SectionedRecyclerViewAdapter 
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview); 
recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 
recyclerView.setAdapter(sectionAdapter); 
0

Ich habe eine Klasse, die genau das tun, was u https://gist.github.com/agustindev/e2faa7ef6a7b61cc0eafeeaf81e4e434 wollen

zunächst eine Section-Klasse Gruppe Ihre Artikel erstellen

... 
    val multipleAdapter = MultipleAdapter() 
    val adapter1 = object: RecyclerView.Adapter<RecyclerView.ViewHolder>(){ ... } 
    val adapter2 = object: RecyclerView.Adapter<RecyclerView.ViewHolder>(){ ... } 
    val adapter3 = object: RecyclerView.Adapter<RecyclerView.ViewHolder>(){ ... } 
    multipleAdapter.addAdapter(adapter1) 
    multipleAdapter.addAdapter(adapter2) 
    multipleAdapter.addAdapter(adapter3) 

    recyclerView.adapter = multipleAdapter 
Verwandte Themen