Android AutoCompleTextExtView는 사용자 정의 ArrayAdapter의 필터를 무시하는 것 같습니다.
-
14-11-2019 - |
문제
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.
제휴하지 않습니다 StackOverflow