Tengo un MultiAutoCompleteTextView que le permite ingresar en varias entradas y muestra las sugerencias de autocompletar. Mi problema surge cuando envío mis datos. Estoy agregando cadenas ingresadas a la lista desplegable, pero mis intentos de ordenar los datos fallan. El código que se ejecuta en enviar:Ordenando ArrayAdapter para 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);
el código de lo que sucede en hacer clic en el autoCompleteView:
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
adapter.getFilter().filter(null);
//adapter.sort(comp);
view.showDropDown();
}
});
¿Alguien puede encontrar nada malo en lo que estoy haciendo?
EDIT: algo más de información, después de incorporar cambios de @ 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();
}
Gracias. He agregado este código a la parte que se ejecuta cuando envío, pero la lista desplegable no se actualiza en absoluto con la nueva entrada. Sin embargo, cuando agrego el código en la parte donde se inicializa el adaptador, la cadena agregada se agrega con éxito. ¿Esto suena como un problema con (hilos) que no puede modificar los datos existentes? – Flash
No veo dónde está usando subprocesos o el contexto general, por lo que no puedo estar seguro ... – Sam
Disculpe, vea mi edición de la pregunta original. – Flash