This is stated in comments elsewhere on this page but thought it useful to pull it out into an answer:
When using an adapter, I've found that the spinnerObject.setSelection(INDEX_OF_CATEGORY2)
needs to occur after the setAdapter
call; otherwise, the first item is always the initial selection.
// spinner setup...
spinnerObject.setAdapter(myAdapter);
spinnerObject.setSelection(INDEX_OF_CATEGORY2);
This is confirmed by reviewing the AbsSpinner code for setAdapter
.