Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting ID for Spinner items

I have an array of Strings I'm populating a Spinner object with. However, I'd like to attach an ID to each element of the Spinner, so when the user selects an item, I have its ID to use to save to some other piece of data. How can I do this?

like image 858
Andrew Avatar asked Apr 26 '11 14:04

Andrew


2 Answers

Create a class StringWithTag and use in place of the string name in the list like so :-

public class StringWithTag {     public String string;     public Object tag;      public StringWithTag(String stringPart, Object tagPart) {         string = stringPart;         tag = tagPart;     }      @Override     public String toString() {         return string;     } } 

in the add items to spinner part :-

List<StringWithTag> list = new ArrayList<StringWithTag>(); list.add(new StringWithTag("Oldman", "12345")); list.add(new StringWithTag("Umpire", "987654")); list.add(new StringWithTag("Squad", "ABCDEE")); ArrayAdapter<StringWithTag> adap = new ArrayAdapter<StringWithTag> (this, android.R.layout.simple_spinner_item, list); .... .... 

in the listener :-

public void onItemSelected(AdapterView<?> parant, View v, int pos, long id) {     StringWithTag s = (StringWithTag) parant.getItemAtPosition(pos);     Object tag = s.tag; } 

voila! }

like image 106
mfc Avatar answered Sep 20 '22 11:09

mfc


What do you mean by id. You can use ArrayAdapter to populate the Spinner. When item is selected just get the element from the adapter and save the data you want.

Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<MyObject> adapter = ... // initialize the adapter adapter.setDropDownViewResource(android.R.layout.some_view); spinner.setAdapter(adapter); 

and when item is selected

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {     MyObject selected = parent.getItemAtPosition(pos);     // save any data relevant with selected item    } 

If you are storing your data in db you can use CursorAdapter and in onItemSelected to fetch the selected item id from the cursor.

like image 28
Mojo Risin Avatar answered Sep 21 '22 11:09

Mojo Risin