我有RecyclerView
我試圖讓過濾器搜索到回收項目及其工作,但是當我使用它並輸入任何內容時,結果只是列表的第一項。過濾方法只返回第一個項目Android
這是篩選方法
private List<Data> filter(List<Data> datas, String newText) {
newText = newText.toLowerCase();
final List<Data> filteredModelList = new ArrayList<>();
for (Data data : datas) {
final String text = data.getTODO_TITLE().toLowerCase();
if (text.contains(newText)) {
filteredModelList.add(data);
}
}
return filteredModelList;
}
,這是菜單
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(final String searchQuery) {
final List<Data> filteredModelList = filter(dbList, searchQuery);
filteredModelList.indexOf(searchQuery);
List <Data> search =filteredModelList;
todoRecyclerView.scrollToPosition(0);
recyclerAdapter = new TodoRecyclerAdapter(search);
recyclerAdapter.notifyDataSetChanged();
return false;}});
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
});
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_search) {
return true;
}
return super.onOptionsItemSelected(item);
}}
我已經給了你一個工作適配器的源代碼,你爲什麼不使用它呢? – pskink
我不知道如何使用適配器,我試圖用另一種方法 –
你不知道什麼?只需創建適配器,「添加()」一些數據,然後在'setAdapter'方法中使用它,這三個步驟有什麼不明之處? – pskink