在 baseadapter 中过滤后显示项目的当前大小
show current size of items after filterable in baseadapter
我正在使用可过滤的 BaseAdapter,过滤后,我想在 activity 中显示已过滤项目的当前大小。
问题是,当我从适配器启动过滤器时,似乎需要一点时间(我猜以毫秒为单位),而从 activity 开始,当我 运行 方法
adapter.getSize()
它给我过滤前的计数,而不是过滤后的计数。
例如:
@Override
protected void publishResults(CharSequence constraint,FilterResults results) {
// TODO Auto-generated method stub
Names = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
和来自 activity:
adapter.filter()....
System.out.println(adapter.getSize()); //return wrong count
2个相关问题:
1) 可过滤的是异步还是同步?
2) 我如何从 activity 知道过滤器已完成并且 notifysetchanged() 已完成?
P.S 通知集更改在适配器内部,如本页所建议:
How to implement getFilter on a BaseAdapter?
尝试一下,它对我来说非常有用:
int filtered;
View yourView;
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
yourList= (ArrayList<?>) results.values;
filtered = yourList.size();
yourView.post(new Runnable() {
@Override
public void run() {
yourView.setText("Total " + filtered);
}
});
notifyDataSetChanged();
}
我正在使用可过滤的 BaseAdapter,过滤后,我想在 activity 中显示已过滤项目的当前大小。
问题是,当我从适配器启动过滤器时,似乎需要一点时间(我猜以毫秒为单位),而从 activity 开始,当我 运行 方法
adapter.getSize()
它给我过滤前的计数,而不是过滤后的计数。
例如:
@Override
protected void publishResults(CharSequence constraint,FilterResults results) {
// TODO Auto-generated method stub
Names = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
和来自 activity:
adapter.filter()....
System.out.println(adapter.getSize()); //return wrong count
2个相关问题:
1) 可过滤的是异步还是同步?
2) 我如何从 activity 知道过滤器已完成并且 notifysetchanged() 已完成?
P.S 通知集更改在适配器内部,如本页所建议:
How to implement getFilter on a BaseAdapter?
尝试一下,它对我来说非常有用:
int filtered;
View yourView;
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
yourList= (ArrayList<?>) results.values;
filtered = yourList.size();
yourView.post(new Runnable() {
@Override
public void run() {
yourView.setText("Total " + filtered);
}
});
notifyDataSetChanged();
}