Бывают дни, когда я изучаю в сети информацию о том, как проводить исследования в arraylist с помощью hashmap, и, к счастью, я наткнулся на этот пост.
Я сделал свою адаптацию к arraylist>, и это сработало. А теперь я поделюсь с вами, вы узнаете, что есть кто-то похожий вопрос, использующий ArrayList и HashMap. Спасибо Пим Рейерсен!
public class CategoriaAdapterModel extends BaseAdapter implements Filterable {
private Activity context;
private ArrayList<HashMap<String, String>> mDataShown;
private ArrayList<HashMap<String, String>> mAllData;
private Filter mFilter;
private LayoutInflater inflater;
DownloadImagemUtil downloader;
public CategoriaAdapterModel(Activity context,
ArrayList<HashMap<String, String>> data) {
this.context = context;
this.mAllData = data;
this.mDataShown = data;
downloader = new DownloadImagemUtil(context);
}
public void add(HashMap<String, String> object) {
mAllData.add(object);
this.notifyDataSetChanged();
}
public int getCount() {
return mDataShown.size();
}
public Object getItem(int position) {
return mDataShown.get(position);
}
public long getItemId(int position) {
return position;
}
public Filter getFilter() {
if (mFilter == null) {
mFilter = new CustomFilter();
}
return mFilter;
}
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
private class CustomFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(
mAllData);
results.values = list;
results.count = list.size();
} else {
ArrayList<HashMap<String, String>> newValues = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < mAllData.size(); i++) {
HashMap<String, String> item = mAllData.get(i);
if (item.get(JsonFragmentCategoriaCONN.TAG_NOME)
.toLowerCase()
.contains(constraint.toString().toLowerCase())) {
newValues.add(item);
}
}
results.values = newValues;
results.count = newValues.size();
}
return results;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
mDataShown = (ArrayList<HashMap<String, String>>) results.values;
Log.d("CustomArrayAdapter", String.valueOf(results.values));
Log.d("CustomArrayAdapter", String.valueOf(results.count));
notifyDataSetChanged();
}
}