В настоящее время я работаю над учетной записью для моего приложения для Android, и мне трудно понять, почему метод setSelection() от счетчика не запускает OnItemSelectedListener, прикрепленный к указанному Spinner.
Вот что я имею в настоящее время;
метод onCreate():
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.account_management);
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    retreiveLanguage();
    initializeUI();
    // Vérification si l'usager est déjà connecté
    Globals appState = ((Globals) this.getApplication());
    boolean userLoggedIn = appState.isUserLoggedIn();
    boolean userInfoAvailable = appState.isUserInfoAvailable();
    if (userLoggedIn && userInfoAvailable) {
      fillUI();
    }
}   
Первичные строки из метода initializeUI(), который вызывается при создании Activity, который показывает привязку Spinner the Listener:
    /** OnItemSelectedHandler for the Country Spinner */
    mCountrySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view,
                int pos, long id) {
            Log.i(TAG, "onCountrySelected() was called, position : " + pos);
            mProvinces = new ArrayList<String>();
            mProvincesCode = new ArrayList<String>();
            mXML.parseResponse(FileManager.getInstance().getPortalOptions());
            for (int i = 0; i < mXML.getCountry(pos).sizeProvinces(); i++){
                mProvinces.add(mXML.getCountry(pos).getProvince(i).getLabel(mLanguage));
                mProvincesCode.add(mXML.getCountry(pos).getProvince(i).getCode());
            }
            mProvinceArrayAdapter = new ArrayAdapter<String>(ManageAccountActivity.this, 
                    android.R.layout.simple_spinner_item, mProvinces);
            mProvinceArrayAdapter.setDropDownViewResource(
                    android.R.layout.simple_spinner_dropdown_item);
            mProvinceSpinner.setAdapter(mProvinceArrayAdapter);
        }
        public void onNothingSelected(AdapterView<?> arg0) {
            // Do Nothing ...               
        }
    });
И снова еще пару строк, на этот раз из метода fillUI():
Log.i(TAG, "Setting country based on user information.");
((Spinner) findViewById(R.id.spin_country))
    .setSelection(mCountriesCode.indexOf(mUser.getCountry()));
// TODO : Fix Provinces and States not being changed accordingly
Log.i(TAG, "Setting province based on user information.");
((Spinner) findViewById(R.id.spin_province))
    .setSelection(mProvincesCode.indexOf(mUser.getProvince())); 
Таким образом, я бы ожидал, что OnItemSelectedListener будет вызван сразу после того, как я установил выбор в методе fillUI(), но это не то, что происходит во время выполнения: S
Здесь вызывается мой LogCat, который показывает, что Listener не вызывается, когда выбор применяется к счетчику страны:
I/ManageAccountActivity (28108): настройка страны на основе информации о пользователе.
I/ManageAccountActivity (28108): настройка области на основе информации о пользователе.
I/ManageAccountActivity (28108): onCountrySelected() вызывается, позиция: 1
В качестве эксперимента я также попытался поместить вызов fillUI() в метод onStart моей Activity, но это не изменило реакцию приложения.
Спасибо заранее за любые указатели, помощь или советы!
