Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示baseadapter中可筛选项之后的项的当前大小_Java_Android_Baseadapter - Fatal编程技术网

Java 显示baseadapter中可筛选项之后的项的当前大小

Java 显示baseadapter中可筛选项之后的项的当前大小,java,android,baseadapter,Java,Android,Baseadapter,我正在将BaseAdapter与filterable一起使用,在筛选之后,我希望在活动中显示filteredItems的当前大小 问题是,当我从适配器启动过滤器时,似乎需要一点时间(我猜是毫秒),从活动开始,当我运行该方法时 adapter.getSize() 它给出的是过滤器前的计数,而不是过滤器后的计数 例如: @Override protected void publishResults(CharSequence constraint,FilterResults results) {

我正在将BaseAdapter与filterable一起使用,在筛选之后,我希望在活动中显示filteredItems的当前大小

问题是,当我从适配器启动过滤器时,似乎需要一点时间(我猜是毫秒),从活动开始,当我运行该方法时

adapter.getSize() 
它给出的是过滤器前的计数,而不是过滤器后的计数

例如:

@Override
protected void publishResults(CharSequence constraint,FilterResults results) {
    // TODO Auto-generated method stub
    Names = (ArrayList<String>) results.values;
    notifyDataSetChanged();
}
2相关问题:

1) 可过滤文件是异步的还是同步的

2) 我如何从活动中知道筛选器已完成,notifysetchanged()已完成

p.S通知集更改位于适配器内部,如本页所示:


试试看,它对我很有用:

    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();
                }
int过滤;
看你的观点;
@凌驾
受保护的void publishResults(CharSequence约束、FilterResults结果){
yourList=(ArrayList)results.values;
filtered=yourList.size();
yourView.post(新Runnable(){
@凌驾
公开募捐{
yourView.setText(“总计”+过滤);
}
});
notifyDataSetChanged();
}
是否覆盖了getSize()2。过滤器是同步3。notifysetchanged用于已查看的项目,您不应该关心它或它何时完成,但它也会同步,因此如果您感兴趣,只需在调用它之后的行
    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();
                }