Skip to content

Instantly share code, notes, and snippets.

@rajohns08
Last active June 17, 2016 13:41
Show Gist options
  • Save rajohns08/a9601527a4a2795f78b8 to your computer and use it in GitHub Desktop.
Save rajohns08/a9601527a4a2795f78b8 to your computer and use it in GitHub Desktop.
Android - Spinner subclass to make populating easier

Usage

List of Strings

List<String> items = new ArrayList<>();
items.add("your stuff");
items.add("more stuff");
simpleSpinner.populate(this, items);

Resource string-array

simpleSpinner.populate(this, R.array.month_array);

If waiting on network call before really populating

simpleSpinner.populate(this, "Loading...");
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import java.util.ArrayList;
import java.util.List;
public class SimpleSpinner extends Spinner {
public SimpleSpinner(Context context) {
super(context);
}
public SimpleSpinner(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void populate(Context context, String item) {
List<String> list = new ArrayList<>();
list.add(item);
populate(context, list);
}
public void populate(Context context, List<String> spinnerItems) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, spinnerItems);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
this.setAdapter(adapter);
}
public void populate(Context context, @ArrayRes int textArrayResId) {
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, textArrayResId, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
this.setAdapter(adapter);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment