I have spinner, that containing value and ID , such as below :
ID      message
---     ----
100     Elephant
120     Lion
125     Cat
153     Dog
165     Bear
this is the way for showing only value on my spinner :
    public class Message {
private Int id;
private String message;
public Int getId() {
    return id;
}
public void setId(Int id) {
    this.id = id;
}
public String getMessage() {
    return message;
}
public void setMessage(String message) {
    this.message = message;
}
 @Override
 public String toString() {          
     return  message;
 }
this is how I passing Message into my adapter :
 protected List<Message> messages = null;
ArrayAdapter <Message> arrayadapter = new ArrayAdapter<Message>( activity,android.R.layout.simple_spinner_item,messages);               
                    arrayadapter.setDropDownViewResource(R.layout.textview);
spinner1.setAdapter(arrayadapter);
this is how i get ID from selected spinner :
    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view,
                int pos, long id) {
            Message mSelected = (Message) parent.getItemAtPosition(pos);
            Log.i("Id:", mSelected.getId());
        }
}
the problem is when I tried to set my spinner based on ID such as ID: 165, not from value or index, I tried to this method :
ArrayAdapter myAdap = (ArrayAdapter) spinner1.getAdapter();
        int spinnerPosition = myAdap.getPosition(message.getID());
        spinner1.setSelection(Message.getID());
but it return error, so my question, how to set selection on spinner based on their ID?
 
     
     
    