Question

Tout ce que je veux faire, c'est afficher une case à cocher à chaque résultat des résultats de l'autocompletetextView (qui sont des chaînes).

J'ai écrit un adaptateur de réseau personnalisé qui implémente Filtrable.J'ai ajouté un filtre simple qui est appelé (j'ai vérifié cela) et retourne les résultats attendus.Cependant, les résultats affichés sont complètement différents.

Voici mon code de filtre:

private class MyFilter extends Filter
    {
        @Override
        protected FilterResults performFiltering(CharSequence constraint)
        {
            FilterResults results = new FilterResults();
            if ((constraint == null) || (constraint.length() == 0))
            {
                synchronized (mLock)
                {
                    ArrayList<String> list = new ArrayList<String>();
                    results.values = list;
                    results.count = list.size();
                }
            }
            else
            {
                String constr = constraint.toString().toLowerCase();
                final ArrayList<String> newItems = new ArrayList<String>();
                for (String temp : items)
                {
                    if (temp.toLowerCase().startsWith((constr)))
                    {
                        newItems.add(temp);
                    }
                }
                results.values = newItems;
                results.count = newItems.size();
            }
            return results;
        }

        @Override
        protected void publishResults(CharSequence constraint,
                FilterResults results)
        {
            if (results.count > 0)
            {
                notifyDataSetChanged();
            }
            else
            {
                notifyDataSetInvalidated();
            }
        }
    }

Est-ce que je manque quelque chose? Merci!

Était-ce utile?

La solution

I forgot to set my results as the new items of the adapter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top