0
ツールバーに含まれていないSearchView(android.support.v7.widget.SearchView)でRecyclerViewをフィルタリングするにはどうすればよいですか?v7 SearchView android
モデルのAPIから取得している名前を使用してリサイクルアダプタで結果をフィルタリングしたいとします。 フラグメント内にrecyclerviewを設定しました。
ツールバーに含まれていないSearchView(android.support.v7.widget.SearchView)でRecyclerViewをフィルタリングするにはどうすればよいですか?v7 SearchView android
モデルのAPIから取得している名前を使用してリサイクルアダプタで結果をフィルタリングしたいとします。 フラグメント内にrecyclerviewを設定しました。
あなたは、単に検索ビュー用のsearchviewまたは編集テキスト
によって
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
return false;
}
@Override
public boolean onQueryTextChange(String text) {
filter(s.toString(),getCustomDeviceCheckItemsList());
return true;
}
});
private void filter(String text,ArrayList<CustomCheckItem> names) {
//new array list that will hold the filtered data
ArrayList<CustomCheckItem> filterdNames = new ArrayList<>();
//looping through existing elements
for (CustomCheckItem s : names) {
//if the existing elements contains the search input
if (s.getTitle().toLowerCase().contains(text.toLowerCase())) {
//adding the element to filtered list
filterdNames.add(s);
}
}
//calling a method of the adapter class and passing the filtered list
childAdapter.filterList(filterdNames);
}
を行うことができますし、アダプタにあなたが
public void filterList(ArrayList<CustomItem> filterdNames) {
this.list = filterdNames;
notifyDataSetChanged();
}
を記述する必要があり、あなたはでそれをしたい場合テキストを編集する
search.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
filter(s.toString(),getCustomDeviceCheckItemsList());
}
});
あなたのアダプターをFilterableインターフェースで実装しましたか? –
番号。私はちょうどrecycviewの上の私の活動の中でsearchviewを設定しました。私はそのsearchviewを使用してrecyclerviewの結果をフィルタリングする方法を知らない –
[これ](https://gist.github.com/pskink/cd3bbdd742b5b1905a790c76831b5d85) 'フィルタリング可能なアダプタを使用し、' matches() 'メソッドをオーバーライドしてください – pskink