Как следует из названия
На начальном этапе, когда я не ввожу никаких ключевых слов, я могу видеть все результаты RecyclerView, но при попытке поиска по списку элементов из RecyclerView каждый раз, когда я вводю любое ключевое слово, все возвращается это самый первый (и только один) результат RecyclerView.
Не нашел ничего похожего на эту тему, поэтому размещая здесь, любая помощь будет оценена. : D
Я не очень разбираюсь в программировании Android.
CollegeSearch.java
public class CollegeSearch extends AppCompatActivity implements RcycAdapter.OnItemClickListener{@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_college_search);
//setting the toolbar
Toolbar toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Rcycle6=findViewById(R.id.Rcycle6);
//for good performance
Rcycle6.setHasFixedSize(true);
//for setting horizontal view for the recycler view
LinearLayoutManager hlinearlayout3 = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false);
Rcycle6.setLayoutManager(hlinearlayout3);
//get the image url and university name from db
requestQueue6 = Volley.newRequestQueue(this);
//Set the Data Adapter
dataList6 = new ArrayList<>();
parseJSON6();
etSearch2=findViewById(R.id.etSearch2);
etSearch2.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());
}
});
}public void filter(String text) {
ArrayList<DataFetchCollegeDetails> filteredList = new ArrayList<>();
for (DataFetchCollegeDetails item : dataList6) {
if (item.getName().toLowerCase().contains(text.toLowerCase())) {
filteredList.add(item);
}
}
example6Adapter= new RcycAdapter(this, filteredList);
example6Adapter.filterList(filteredList);
}public void parseJSON6(){
//logic
example6Adapter= new RcycAdapter(CollegeSearch.this,dataList6);
Rcycle6.setAdapter(example6Adapter);
example6Adapter.setOnItemClickListener(CollegeSearch.this);
requestQueue6.add(request);
}
}
RcycAdapter.java
public void filterList(ArrayList<DataFetchCollegeDetails> filteredList) {
dataList = filteredList;
notifyDataSetChanged();
}