0
私は問題のように思えましたが、私の頭の中でそれを取り戻すことができます。基本的には、画像とテキストを持つカスタムアダプターを使用するリストビューをフィルタリングします。その作品は初めてです。最初にアクティビティが実行されたときにすべてのデータが取得され、検索ボックスに何かを入力するとそのアクティビティがフィルタリングされます。しかし、ここから私は今何か他のものを入力しても何も印刷せず、配列を空にしてデータを保持します。どんな提案も感謝します。アンドロイドフィルターリストビューは、最初の検索でのみ動作します
フィルタコードフラグメント
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
data= (List<Data>) results.values;
notifyDataSetChanged();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
ArrayList<Item> FilteredArrayNames = new ArrayList<Item>();
// perform your search here using the searchConstraint String.
constraint = constraint.toString().toLowerCase();
for (int i = 0; i < data.size(); i++) {
Item dataNames = data.get(i);
if (dataNames.title.toLowerCase().contains(constraint.toString())) {
FilteredArrayNames.add(dataNames);
}
}
results.count = FilteredArrayNames.size();
results.values = FilteredArrayNames;
Log.e("VALUES", results.values.toString());
return results;
}
};
return filter;
}
アクティビティコードフラグメント
text =(SearchView)findViewById(R.id.searchData);
text.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText.toString());
return true;
}
});
問題がまだ残っていますが、そこから最初に空の配列をフィルタリングします –