我想控制ListView数据的显示。我想在显示列表之前进行过滤和排序。在调用publishResults()之前以及在我进行过滤并调用publishResults()之后,列表正在刷新。
public StoreAdapter(Context context, int textViewResourceId, ArrayList<Store> items, StoresTab storeTab) {
super(context, textViewResourceId, items);
this.items = items;
this.storeTab = storeTab;
this.context = context;
this.filter = new StoreFilter();
imageLoader = ImageThreadLoader.getOnDiskInstance(context);
setNotifyOnChange(false);
}
protected void publishResults(CharSequence constraint, FilterResults results) {
// NOTE: this function is *always* called from the UI thread.
ArrayList<Store> filtered = (ArrayList<Store>)results.values;
clear();
if (filtered != null)
{
for (int i = 0; i < filtered.size(); i++)
{
add(filtered.get(i));
}
sort(storeTab);
}
notifyDataSetChanged();
}
在调用过滤器操作之前显示视图。我在ListActivity中调用了adater.add()方法,并且不在其他地方调用notifyDataSetChanged()。
我在这里转动轮子。我没有源代码来调试它。
当我调试时,我可以在调用arrayAdapter.getView时看到notifydatasetchanged属性= false。有没有办法找出哪个事件要调用它?
答案 0 :(得分:0)
您是否尝试过adapter.notifyDataSetChanged()而不是notifyDataSetChanged()?