Ho un MultiAutoCompleteTextView che consente di inserire più voci e mostra suggerimenti di completamento automatico. Il mio problema sorge quando invio i miei dati. Sto aggiungendo qualsiasi stringa inserita nell'elenco a discesa, ma i miei tentativi di ordinare i dati falliscono. Il codice che viene eseguito su conferma:Ordinamento di ArrayAdapter per Android
final private Comparator<String> comp = new Comparator<String>() {
public int compare(String e1, String e2) {
return e1.toString().compareTo(e2.toString());
}
};
((ArrayAdapter<String>) autoCompleteView.getAdapter()).add(getString());
((ArrayAdapter<String>) autoCompleteView.getAdapter()).sort(comp);
Il codice di ciò che accade sul cliccando l'autoCompleteView:
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
adapter.getFilter().filter(null);
//adapter.sort(comp);
view.showDropDown();
}
});
chiunque può trovare qualcosa di sbagliato in quello che sto facendo?
EDIT: un po 'di informazioni, dopo che incorpora le modifiche da @ Sam
private ArrayList<String> array = new ArrayList<String>();
private ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,
array);
private void setUpAutoComplete(final MultiAutoCompleteTextView view)
{
array.add("test string"); // this is successfully added to the drop down list
Collections.sort(array, comp);
adapter.notifyDataSetChanged();
}
private void onSubmit()
{
array.add(getString()); // this fails to add
adapter.notifyDataSetChanged();
}
Grazie. Ho aggiunto questo codice alla parte che viene eseguita quando invio, ma l'elenco a discesa non si aggiorna affatto con la nuova voce. Quando aggiungo il codice nella parte in cui l'adattatore è inizializzato, tuttavia, la stringa aggiunta è stata aggiunta con successo. Sembra che questo sia un problema con (thread) che non è in grado di modificare i dati esistenti? – Flash
Non vedo dove si stanno utilizzando i thread o il contesto generale, quindi non posso essere certo ... – Sam
Siamo spiacenti, per favore vedi la mia modifica della domanda originale. – Flash