Autocompletetextview不会过滤项目

时间:2014-09-11 04:21:37

标签: android autocompletetextview

我有DialogFragment。有两种情况。

  1. 当我点击按钮时,此对话框将被打开。当我开始输入时,它会过滤内容。保存输入的数据后,对话框将关闭。
  2. (在此方案中观察到的问题)现在如果我再次打开对话框,则在键入时不会过滤。为什么会这样。它在第一个场景中过滤。那么为什么它不在第二种情况下过滤。有没有人面临类似的问题。任何人都可以帮我找到解决这个问题的方法。
  3. 请找到过滤代码

    Override
        public Filter getFilter() {
            return filter;
        }
    
            Filter filter = new Filter() {
                public String convertResultToString(Object resultValue) {
                    String str = ((ItemDto)(resultValue)).name; 
                    return str;
                }
    
                @Override
                protected FilterResults performFiltering(CharSequence constraint) {
                    if(constraint != null) {
                        mSuggestions.clear();
                        for (ItemDto item : mItemsAll) {
                            try {
                                if(item.name.toLowerCase().startsWith(constraint.toString().toLowerCase())){
                                    mSuggestions.add(item);
                                }
                            } catch (Exception ex){}
                        }
                        FilterResults filterResults = new FilterResults();
                        filterResults.values = mSuggestions;
                        filterResults.count = mSuggestions.size();
                        return filterResults;
                    } else {
                        return new FilterResults();
                    }
                }
                @Override
                protected void publishResults(CharSequence constraint, FilterResults results) {
                    @SuppressWarnings("unchecked")
                    ArrayList<ItemDto> filteredList = (ArrayList<ItemDto>) results.values;
                    if(results != null && results.count > 0) {
                        clear();
                        for (Itemdto c : filteredList) {
                            add(c);
                        }
                        notifyDataSetChanged();
                    }
                }
            };
    

0 个答案:

没有答案