Skip to content
Work with sub-sections in your Android ListView
Java
Branch: master
Clone or download
Dutta, Jaibatrik Dutta, Jaibatrik
Dutta, Jaibatrik and Dutta, Jaibatrik Upgrade to new Gradle version, fix for #1
Latest commit d7ee1c9 Dec 17, 2016

README.md

SectionedMergeAdapter

This is a library based on MergeAdapter by CommonsWare. It allows you to work with sections and subheaders in your ListViews. With this library, you get the advantage of stitching together the rows and the header of the subsection in the subsection itself. For example, if there are no rows in a subsection of the ListView, the header of the subsection is also not shown.

Installation

Add the JitPack repository to your build file.

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
        maven { url "https://s3.amazonaws.com/repo.commonsware.com" }
    }
}

Add the dependency

dependencies {
    compile 'com.github.abacritt:sectionedmergeadapter:0.2'
}

Or, simply clone the repository and import the module in your project.

Example code

ListView listView = (ListView) findViewById(android.R.id.list);

ArrayAdapter<String> adapter1 =
        new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList1);
ArrayAdapter<String> adapter2 =
        new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList2);
ArrayAdapter<String> adapter3 =
        new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList3);

TextView tv1 = new TextView(this);
tv1.setText(R.string.header_1);
TextView tv2 = new TextView(this);
tv2.setText(R.string.header_2);
TextView tv3 = new TextView(this);
tv3.setText(R.string.header_3);

SectionedMergeAdapter adapter = new SectionedMergeAdapter();

adapter.addSection(new SectionedMergeAdapter.Section(tv1, adapter1));
adapter.addSection(new SectionedMergeAdapter.Section(tv2, adapter2));
adapter.addSection(new SectionedMergeAdapter.Section(tv3, adapter3));

listView.setAdapter(adapter);

Note

Since SectionedMergeAdapter is extending from the MergeAdapter, you can use other MergeAdapter functionalities like addView(), addViews() and addAdapter() with this library.

For a detailed list of things supported with MergeAdapter check out CWAC MergeAdapter.

Screenshot

Screenshot

You can’t perform that action at this time.