上部にアクション バーがあり、検索ビューがあるアクティビティがあります。また、カスタム リスト ビューを使用しており、検索ビューに入力されたキーワードからフィルター処理を行いたい場合は、リスト ビュー アイテムの特定のテキスト ビューに関連付ける必要があります。
質問する
6196 次
1 に答える
2
リスナー使用の onQueryTextChange(String Text) メソッドで: adapter.getFilter().filter(Text.toString()); BaseAdapter クラスにフィルターを実装します。サンプルコードは次のとおりです。
@Override
public Filter getFilter()
{
return filter;
}
private GameFilter filter;
private class GameFilter extends Filter
{
public GameFilter() { }
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults oReturn = new FilterResults();
ArrayList<ItemDetails> results = new ArrayList<ItemDetails>();
if (orig == null)
orig = itemDetailsrrayList;
if (constraint != null)
{
if (orig != null && orig.size() > 0) {
for (ItemDetails g : orig) {
if (g.getName().toLowerCase().contains(constraint.toString().toLowerCase()))
results.add(g);
}
}
oReturn.values = results;
}
return oReturn;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results)
{
itemDetailsrrayList = (ArrayList<ItemDetails>)results.values;
notifyDataSetChanged();
}
}
于 2012-12-10T05:34:09.360 に答える