Skip to content

Multiple Item Selection Spinner

Pratik Butani edited this page Sep 11, 2020 · 1 revision

How to use Multiple Item Selection Spinner

XML Code:

<com.androidbuts.multispinnerfilter.MultiSpinnerSearch
    android:id="@+id/multipleItemSelectionSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    app:hintText="Multi Item Selection" />

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);

// Removed second parameter, position. It's 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<KeyPairBoolData> 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 a 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? Thank you!