フィルタでBaseAdapterを使用していますが、フィルタの後ろでfilteredItemsの現在のサイズをアクティビティに表示します。ベースダプタでフィルタリング可能なアイテムの現在のサイズを表示します
問題は、私は、アダプタからのフィルタを開始するとき、(私はミリ秒単位で推測)少し時間がかかるように思われる、ある、との活動から、私はこの方法
adapter.getSize()
を実行したときにそれが与えます私はフィルタの前に数え、後にはない。例えば
:
@Override
protected void publishResults(CharSequence constraint,FilterResults results) {
// TODO Auto-generated method stub
Names = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
及び活動から:
adapter.filter()....
System.out.println(adapter.getSize()); //return wrong count
2に関する質問:
1)濾過非同期または同期のですか?
2)アクティビティから、フィルタが完了し、notifysetchanged()が完了したことをどのように知ることができますか?このページで示唆したようにインクルードが変更設定通知
PSは、アダプタの内部にある:How to implement getFilter on a BaseAdapter?
あなたがのgetSizeをオーバーライドしませんでした() 2.フィルタはsync 3です。notifysetchangedは表示されたアイテム用ですので、気にする必要はありません。また、終了したら同期するので、興味があれば呼び出すだけで同期します。 – zombie