MultiSpinner

Download Build Status

Android Spinner Widget with multi selectable list

Overview

MultiSpinner is a class with can be used by Android developers that need a spinner widget with multi selection capabilities. When the user touches on the spinner widget a dialog pops up with a checkbox list.

Spinner with single selection Spinner item selection dialog Spinner with multiple selection

Usage

Integrating the widget is quite simple. In your layout.xml add the following snippet:

...
<com.thomashaertel.widget.MultiSpinner
    android:id="@+id/spinnerMulti"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
...

After inserting the widget in your layout add the following code to your activity:

    public class MyActivity extends Activity {
        private MultiSpinner spinner;
        private ArrayAdapter<String> adapter;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            // create spinner list elements
            adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
            adapter.add("Item1");
            adapter.add("Item2");
            adapter.add("Item3");
            adapter.add("Item4");
            adapter.add("Item5");

            // get spinner and set adapter
            spinner = (MultiSpinner) findViewById(R.id.spinnerMulti);
            spinner.setAdapter(adapter, false, onSelectedListener);

            // set initial selection
            boolean[] selectedItems = new boolean[adapter.getCount()];
            selectedItems[1] = true; // select second item
            spinner.setSelected(selectedItems);
        }

        private MultiSpinner.MultiSpinnerListener onSelectedListener = new MultiSpinner.MultiSpinnerListener() {
            public void onItemsSelected(boolean[] selected) {
                // Do something here with the selected items
            }
        };
    }

Building

Gradle

From Bintray

Add maven central to your build.gradle:

buildscript {
  repositories {
    jcenter()
  }
}

repositories {
  jcenter()
}

From maven central

Add maven central to your build.gradle:

buildscript {
  repositories {
    mavenCentral()
  }
}

repositories {
  mavenCentral()
}

Then declare MultiSpinner within your dependencies:

dependencies {
  ...
  compile('com.thomashaertel:multispinner:0.1.0@aar') {
  }
  ...
}

Maven

From maven central

To use MultiSpinner within your maven build simply add

<dependency>
  <artifactId>multispinner</artifactId>
  <version>${multispinner.version}</version>
  <groupId>com.thomashaertel</groupId>
</dependency>

to your pom.xml

If you also want the sources or javadoc add the respective classifier

  <classifier>sources</classifier>

or

  <classifier>javadoc</classifier>

to the dependency.

License