Question Detail

Hello Android Developers,
I want to develop a spinner who has multiple selected capability. We can select more than one value in it. How can I do this is there any predefined Library for this. thanks in advance.


Thread Reply

Hemant Sharma

- 1 years ago

MultiSpinner

 

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.

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.

Hemant Sharma

- 1 years ago

MultiSpinner

 

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.

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.