Sort ArrayAdapter for Android

I have a MultiAutoCompleteTextView that allows you to enter multiple entries and shows autocomplete options. My problem arises when I submit my data. I add any entered lines to the drop-down list, but my attempts to sort the data fail. Code that is executed when sending:

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

Code for what happens when autoCompleteView is clicked:

        view.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                adapter.getFilter().filter(null);
                //adapter.sort(comp);
                view.showDropDown();
            }
        });

Can someone find something wrong with what I'm doing?

EDIT: more info after incorporating changes from @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();
}
+5
source share
1 answer

but my attempts to sort the data fail

This is a bit vague. But I guess.

First you do something superfluous:

return e1.toString().compareTo(e2.toString());

e1 e2 , String#toString(). String- . .

, . Collections:

List<String> list = new ArrayList<String>();
list.add(getString());
...

Collections.sort(list);
adapter.notifyDataSetChanged();

, adapter.add() list.add(). , adapter.add() list.add() adapter.notifyDataSetChanged(), , .

+9

All Articles