Mam MultiAutoCompleteTextView, który umożliwia wpisywanie wielu wpisów i pokazuje autouzupełnianie sugestii. Mój problem powstaje, gdy przesyłam moje dane. Dodaję wszystkie wprowadzone ciągi do rozwijanej listy, ale moje próby posortowania danych zawodzą. Kod, który wykonuje na przedłożyć:Sortowanie ArrayAdapter dla Androida
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);
kod dla co dzieje się na kliknięcie autoCompleteView:
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
adapter.getFilter().filter(null);
//adapter.sort(comp);
view.showDropDown();
}
});
Czy ktoś może znaleźć coś złego z tym, co robię?
EDIT: trochę więcej informacji, po uwzględnieniu zmian od @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();
}
Dzięki. Dodałem ten kod do części, która wykonuje się po przesłaniu, ale lista rozwijana nie aktualizuje się w ogóle o nowy wpis. Kiedy dodaję kod do części, w której jest zainicjalizowany adapter, dodany łańcuch został pomyślnie dodany. Czy to brzmi jak problem z (wątkami), który nie może modyfikować istniejących danych? – Flash
Nie widzę, gdzie używasz wątków lub ogólnego kontekstu, więc nie mogę być pewny ... – Sam
Przepraszam, zapoznaj się z moją wersją oryginalnego pytania. – Flash