をバックスペースを押しながらキーは結果がコールonQueryTextChange私は私のバックスペースを使用して、私のクエリのテキストを削除する場合(削除)、(削除)私の検索ビューでキー
は、私が検索ここで見るよりよく理解するために、以下の画像を参照してください返さないしまいました私のアダプタのオブジェクトがあり、その結果を取得していますtest1
..ため
大丈夫私は1つのより多くの時間を問い合わせましたが、私はどれも結構ですので、結果として何も得ていないのです。この名前を持つオブジェクトなかったです
今ここに私のonQueryTextChange
を私はバックスペースを押す(キーを削除)し、今、私のクエリテキストがtest
であると私は私のアダプタでこの名前のオブジェクトを持っていますが、リターン 内の任意のものを得ていないのです
クエリのテキストを削除するときに呼び出されています。どのようにこれを修正できますか?どんな手掛かり ??
コード:
Search_View.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String Text) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (newText.length() == 0) {
notesAdapter = new NotesAdapter(getActivity(), getData());
recyclerView.setAdapter(notesAdapter);
}
if (notesAdapter != null) {
notesAdapter.getFilter().filter(newText);
}
return true;
}
});
私notesAdapterのフィルタリング部分:
private static class UserFilter extends Filter {
private final NotesAdapter adapter;
private final List<Information> originalList;
private final List<Information> filteredList;
private UserFilter(NotesAdapter adapter, List<Information> originalList) {
super();
this.adapter = adapter;
this.originalList = new ArrayList<>(originalList);
this.filteredList = new ArrayList<>();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
filteredList.clear();
final FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(originalList);
} else {
final String filterPattern = constraint.toString().toLowerCase().trim();
for (final Information user : originalList) {
if ((user.title != null && user.title.toLowerCase().contains(filterPattern)) ||(user.address != null &&(user.address.toLowerCase().contains(filterPattern))) ||
(user.postType != null && (user.postType.toLowerCase().contains(filterPattern)))|| (user.publisher != null&& (user.publisher.toLowerCase().contains(filterPattern)))
)
{
filteredList.add(user);
}
}
}
results.values = filteredList;
results.count = filteredList.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.filteredUserList.clear();
if ((ArrayList<Information>) results.values != null) {
adapter.filteredUserList.addAll((ArrayList<Information>) results.values);
}
adapter.notifyDataSetChanged();
} }
'「私のonQueryTextChangeが呼び出されていないように思えます... "と思われる?あなたはそれを確認しませんでしたか? – pskink
@pskinkええ、それはちょうどそれを確認した –
またあなたのコードを置く – Stallion