Actualiser ArrayAdapter dynamiquement

J'ai une Activité avec une zone de saisie semi-automatique. Chaque fois que les modifications du texte, je tiens à appeler un service web et remplir le ArrayAdapter avec le new String[] retournée. Cette partie toutes les grandes œuvres, à l'exception de la liste dans l'INTERFACE utilisateur n'est pas en cours d'actualisation lorsqu'il y a toutes les nouvelles valeurs dans le String[] les écoles. La liste d'origine peuplée dans mon onCreate reste toujours.

J'ai lu quelque part j'avais besoin de le mettre à jour sur le même thread de l'INTERFACE utilisateur est en cours d'exécution, donc j'ai essayé de l'Exécutable énumérés dans mon code ci-dessous. Mais que, ainsi que la mise à jour de ma variable de classe des écoles de ne pas travailler aux côtés de notifyOnDataSetChange()

Où vais-je tort?

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    schools = SchoolProxy.search("Co");
    autoCompleteAdapter = new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line, schools);
    autoComplete = (AutoCompleteTextView)  findViewById(R.id.edit);
    autoComplete.addTextChangedListener(textChecker);
    autoComplete.setAdapter(autoCompleteAdapter);
}
    ...
    ....
    ...

final TextWatcher textChecker = new TextWatcher() {
    public void afterTextChanged(Editable s) {}

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    public void onTextChanged(CharSequence s, int start, int before, int count) 
    {
     schools = SchoolProxy.search(s.toString());
     runOnUiThread(updateAdapter);
    }
};

private Runnable updateAdapter = new Runnable() {
  public void run() {
         autoCompleteAdapter.notifyDataSetChanged();
        }

};

Comme moins importante note de côté, si chaque élément dans les écoles a un nom \n ville,de l'état. Est-il possible d'avoir la ville & état sur une deuxième ligne à l'intérieur de l'auto de la liste déroulante? Juste pour des raisons de formatage. Aurait l'air plus propre si je le pouvais.

Merci!

OriginalL'auteur Nathan | 2009-12-28