Spinner.setSelection ne déclenche pas OnItemSelectedListener correctement

Je suis actuellement en train de travailler sur un Compte de l'Activité de Gestion pour mon application Android et je vais avoir de la difficulté à comprendre pourquoi le setSelection() méthode à partir d'un spinner ne déclenche pas la OnItemSelectedListener attaché à dit Spinner.

Voici ce que j'ai actuellement;

onCreate() méthode :

@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();
    }
}   

Des lignes à partir de la initializeUI() méthode qui est appelée sur l'Activité de création qui montre la liaison de la Fileuse de l'Auditeur :

    /** 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 ...               
        }
    });

Et encore un autre couple de lignes, cette fois à partir de la fillUI méthode() :

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())); 

Donc, avec cela, je m'attends à la OnItemSelectedListener être appelée juste après j'ai mis de la sélection dans la fillUI() la méthode, mais ce n'est pas ce qui se passe au moment de l'exécution :S

Voici mon LogCat extrait qui montre que l'Auditeur n'est pas appelé lorsque la sélection est appliquée dans le pays spinner:

I/ManageAccountActivity(28108): Paramètre de pays sur la base des informations de l'utilisateur.

I/ManageAccountActivity(28108): Réglage de la province en fonction des informations de l'utilisateur.

I/ManageAccountActivity(28108): onCountrySelected() a été appelé, position : 1

Comme une expérience, j'ai aussi essayé de mettre le fillUI() l'appel à la méthode onStart de mon Activité, mais qui n'a pas changé la façon dont l'application a réagi.

Merci d'avance pour tous les pointeurs, de l'aide ou des conseils !

,OnItemSelectedListener est activé uniquement lorsque vous effectuez une action sur spinner..pour changer
Eh bien, je ne le changer ... en déplaçant la sélection de 0 à 1, ce ne serait pas considérée comme modifiée ?

OriginalL'auteur Jean-Philippe Roy | 2012-01-30