Pregunta

Todo lo que quiero hacer es mostrar una casilla de verificación en cada resultado de los resultados de AutocompleTeteTexTView (que son cadenas).

Escribí un adaptador de matriz personalizado que implementa filtrable.Añadí un simple filtro que se llama (lo revisé) y devuelve los resultados esperados.Sin embargo, los resultados mostrados son completamente diferentes.

Aquí está mi código de filtro:

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

¿Extraño algo? ¡Gracias!

¿Fue útil?

Solución

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top