O Android Custom ArrayAdapter não atualiza após o filtro

Então eu tenho um costumeArrayAdapter para que eu possa usar o modo de exibição de título / legenda que está disponível noListView. eu tenho umEditText que aceita uma string e filtra o adaptador.

O filtro funciona no sentido de que está filtrando os objetos corretos (eu posso dizer clicando nele e ele inicia a intenção com os "extras" corretos).

No entanto, mesmo que a filtragem funcione, os itens no adaptador não são atualizados para exibir as informações corretas ... O título e a legenda estão incorretos.

Vamos dizer que temos itens de 0 a 9 noListView, Eu filtro para 3 itens com uma pesquisa, e vamos dizer que os itens filtrados são 5, 6, 9 ... 3 itens são exibidos, mas os 3 primeiros itens da pré-pesquisa originalListView (0-2). Se eu clicar no item 2 (o terceiro item), o conteúdo de 9 está contido na nova intenção. Isso está correto para os critérios de pesquisa, no entanto, o título refletiu as informações corretas.

Não tenho certeza do que preciso dizer aoListView para atualizar. Eu não acho que énotifyDataSetChanged();

Qualquer ajuda é apreciada. Obrigado!

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

Esta é a busca

    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

    }

};