Android Custom ArrayAdapter nie odświeża się po filtrze

Więc mam zwyczajArrayAdapter więc mogę użyć widoku Tytuł / Napisy, który jest dostępny na stronieListView. mamEditText akceptuje łańcuch i filtruje adapter.

Filtr działa w tym sensie, że filtruje poprawne obiekty (mogę to stwierdzić, klikając na niego i uruchamiając zamiar z poprawnymi „dodatkami”).

Jednak mimo że filtrowanie działa, elementy w adapterze nie są aktualizowane, aby wyświetlić prawidłowe informacje ... Tytuł i napisy są nieprawidłowe.

Powiedzmy, że mamy elementy od 0 do 9 naListView, Filtruję do 3 elementów za pomocą wyszukiwania i powiedzmy, że filtrowane elementy to 5, 6, 9 ... 3 elementy są wyświetlane, ale pierwsze 3 elementy oryginalnego wyszukiwania wstępnegoListView (0-2). Jeśli kliknę element 2 (trzeci element), zawartość 9 jest zawarta w nowym zamiarze. Jest to poprawne dla kryteriów wyszukiwania, jednak tytuł odzwierciedlał poprawne informacje.

Nie jestem pewien, co muszę powiedziećListView aby odświeżyć. Nie sądzę, żeby to byłonotifyDataSetChanged();

Każda pomoc jest doceniana. Dzięki!

    public class myListAdapter extends ArrayAdapter<Pizza>{
    private ArrayList<Pizza> items;
    private PizzaViewHolder myListHolder;

    private class PizzaViewHolder{
        TextView title;
        TextView subtitle;
    }

    public myListAdapter(Context context, int textViewResourceId, ArrayList<Pizza> items) {
        super(context, textViewResourceId, items);
        this.items = items;
        // TODO Auto-generated constructor stub
    }

    @Override
    public View getView(int pos, View convertView, ViewGroup parent){
        View v = convertView;
        if(v == null){
            LayoutInflater vi = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.myList_item, null);
            myListHolder = new PizzaViewHolder();
            myListHolder.title = (TextView)v.findViewById(R.id.title);
            myListHolder.subtitle = (TextView)v.findViewById(R.id.subtitle);
            v.setTag(myListHolder);
        }else myListHolder = (PizzaViewHolder)v.getTag();

        Pizza myList = items.get(pos);

        if (myList != null){
            myListHolder.title.setText(myList.getTitle());
            myListHolder.subtitle.setText(myList.getSubTitle());
        }       
        return v;           
    }
}

To jest wyszukiwanie

    private TextWatcher filterTextWatcher = new TextWatcher(){

    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        if(!s.equals("")){  
            ((Filterable) this.listView1.getAdapter()).getFilter().filter(s);
            }
    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    public void onTextChanged(CharSequence s, int start, int before,
            int count) {
        // TODO Auto-generated method stub

    }

};

questionAnswers(1)

yourAnswerToTheQuestion