Надеюсь, это кому-нибудь поможет. Мне понадобилось время, чтобы понять это для себя. Хитрость заключается в том, чтобы переопределить toString в вашем перечислении. Код для перечисления ваших состояний будет:
public enum States{
AL("Alabama"),
AK("Alaska"),
AR("Arkansas"),
AZ("Arizona"),
CA("California"),
CO("Colorado"),
... (etc.);
private String theState;
States(String aState) {
theState = aState;
}
@Override public String toString() {
return theState;
}
}
Затем создайте адаптер так же, как вы:
mAddressState.setAdapter(new ArrayAdapter<States>(this,
android.R.layout.simple_list_item_1, States.values()));
и длинные имена появятся в счетчике. Чтобы получить сокращенное имя из адаптера, например, для сохранения выбранного, используйте функцию enum.name (). Например:
Spinner spinner = (Spinner) myView.findViewById(R.id.theState);
String selected = ((States)spinner.getSelectedItem()).name();