Android AutoCompleTextExtView는 사용자 정의 ArrayAdapter의 필터를 무시하는 것 같습니다.

StackOverflow https://stackoverflow.com/questions/5488680

문제

AutoCompleteTextView의 결과 (문자열 인)의 각 결과에서 확인란을 표시하는 것입니다.

필터가 가능한 사용자 정의 어레이 어댑터를 썼습니다.나는 간단한 필터를 덧붙였다 (나는 그것을 확인한 것을 확인하고 예상 결과를 돌려줍니다.그러나 표시된 결과는 완전히 다른 것입니다.

여기 필터 코드가 있습니다.

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

뭔가를 그리워합니까? 고맙습니다!

도움이 되었습니까?

해결책

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top