# MultiSelectSpinner
**Repository Path**: GitGold/MultiSelectSpinner
## Basic Information
- **Project Name**: MultiSelectSpinner
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-10
- **Last Updated**: 2026-03-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://app.codacy.com/app/pratikbutani/MultiSelectSpinner?utm_source=github.com&utm_medium=referral&utm_content=pratikbutani/MultiSelectSpinner&utm_campaign=Badge_Grade_Dashboard)
[](https://jitpack.io/#pratikbutani/MultiSelectSpinner)
# MultiSelectSpinner
## Android Library to Select multiple items from Spinner
Click to see video of example:
[](https://www.youtube.com/watch?v=mF4WIcQjWLE "Click here to see example")
## How to import
### Add it in your root build.gradle at the end of repositories
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
### Add dependency in build.gradle
implementation 'com.github.pratikbutani:MultiSelectSpinner:1.0.1'
### Recent Changes
* Added Material library.
* Extracted the sample into a separate module.
* Code cleanup.
* `position` parameter is removed from both types of Spinner. Check comments above the code of `setItems`
* `selectAll` button added to Select All Items in MultiSelectSpinner.
* Code Optimised and Upgraded to latest versions of libraries/dependencies.
* **MOST IMP CHANGE** You will get all the selected items in the listener instead of all items.
## How to use SINGLE ITEM SELECTION
### SINGLE ITEM SELECTION SPINNER (XML Code)
### SINGLE ITEM SELECTION SPINNER (Java Code)
/******** MUST READ ALL COMMENTS AS DOCUMENTATION *********/
/**
* Single Item Selection Spinner Demo
*/
SingleSpinnerSearch singleSpinnerSearch = findViewById(R.id.singleItemSelectionSpinner);
// Pass true, If you want color separation. Otherwise false. default = false.
singleSpinnerSearch.setColorseparation(true);
// Pass true If you want searchView above the list. Otherwise false. default = true.
singleSpinnerSearch.setSearchEnabled(true);
// A text that will display in search hint.
singleSpinnerSearch.setSearchHint("Select your mood");
// Removed second parameter, position. Its not required now..
// If you want to pass preselected items, you can do it while making listArray,
// Pass true in setSelected of any item that you want to preselect
// LOGICALLY, PASS Only One Item As SELECTED...
singleSpinnerSearch.setItems(listArray0, new SingleSpinnerListener() {
@Override
public void onItemsSelected(KeyPairBoolData selectedItem) {
Log.i(TAG, "Selected Item : " + selectedItem.getName());
}
@Override
public void onClear() {
Toast.makeText(MainActivity.this, "Cleared Selected Item", Toast.LENGTH_SHORT).show();
}
});
## How to use MULTIPLE ITEM SELECTION SPINNER
### MULTIPLE ITEM SELECTION SPINNER (XML Code)
### MULTIPLE ITEM SELECTION SPINNER (Java Code)
/**
* Search MultiSelection Spinner (With Search/Filter Functionality)
*
* Using MultiSpinnerSearch class
*/
MultiSpinnerSearch multiSelectSpinnerWithSearch = findViewById(R.id.multipleItemSelectionSpinner);
// Pass true If you want searchView above the list. Otherwise false. default = true.
multiSelectSpinnerWithSearch.setSearchEnabled(true);
// A text that will display in search hint.
multiSelectSpinnerWithSearch.setSearchHint("Select your mood");
// Set text that will display when search result not found...
multiSelectSpinnerWithSearch.setEmptyTitle("Not Data Found!");
// If you will set the limit, this button will not display automatically.
multiSelectSpinnerWithSearch.setShowSelectAllButton(true);
//A text that will display in clear text button
multiSelectSpinnerWithSearch.setClearText("Close & Clear");
// Removed second parameter, position. Its not required now..
// If you want to pass preselected items, you can do it while making listArray,
// Pass true in setSelected of any item that you want to preselect
multiSelectSpinnerWithSearch.setItems(listArray1, new MultiSpinnerListener() {
@Override
public void onItemsSelected(List items) {
for (int i = 0; i < items.size(); i++) {
if (items.get(i).isSelected()) {
Log.i(TAG, i + " : " + items.get(i).getName() + " : " + items.get(i).isSelected());
}
}
}
});
/**
* If you want to set limit as maximum item should be selected is 2.
* For No limit -1 or do not call this method.
*
*/
multiSelectSpinnerWithSearch.setLimit(2, new MultiSpinnerSearch.LimitExceedListener() {
@Override
public void onLimitListener(KeyPairBoolData data) {
Toast.makeText(getApplicationContext(),
"Limit exceed ", Toast.LENGTH_LONG).show();
}
});
## Awesome contributors :star_struck:
Made with [contributors-img](https://contributors-img.web.app).
## Buy a cup of coffee
If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of ☕️ [PayPal](http://paypal.me/androidbuts)
### Do not forget to give star if its useful to you. :)