Hi I have two scenarios one is based on position of the grid view position I am displaying recyclerview list was populating .
Second scenario I was implemented search functionality suppose use search for letter A in that gridview My grid item matches then particular item is displayed .On click on that list I am rendering recyclerview list.
But in the first scenario it is working fine .But in the second scenario position got changed because of the position I am getting wrong list.
Can any one help me How to sort out from the issue
Below Adpter Onitem click I am calling this via interface Adapter:
public interface MyItemClickListener{
void myItemClick(int position);
}
Below code is onitem click I am displaying the below list java:
@Override
public void myItemClick(final int position) {
final String speclname=specilaistlist.get(position).getSpecialization();
Doctorlist doctorlist2 = new Doctorlist(Specialization, DoctorName, Qualification, Experience, LanguagesKnown, ProfllePhoto, rupee.concat(ConsultationFees), Hospital, HospitalID, DoctorID);
doctortext.setVisibility(View.VISIBLE);
if (dataList1.getSpecialization().equals(speclname)) {
doctorlists_spe.add(doctorlist2);
doctorAdapter.notifyDataSetChanged();
}
search functionality list is coming correct but Onclick of that item different list is displaying Scenario 2 code:
search.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
callSearch(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.d("TAG","new Text ==>"+newText);
callSearch(newText);
// speclializationAdapter.getFilter().filter(newText);
return true;
}
public void callSearch(String query) {
query = query.toLowerCase();
Log.i("query", "" + query);
onSearch(query);
}
});
return rootView;
}
public void onSearch(String query){
Log.d("Query From Activity",query);
ArrayList<DataList> filteredList = new ArrayList<>();
//resultView.setVisibility(View.GONE);
for (int i = 0; i < specilaistlist.size(); i++) {
final String jTitle = specilaistlist.get(i).getSpecialization().toUpperCase();
// final String jCompany = listTask.get(i).getJob_company().toLowerCase();
// final String jLoc = mDataList.get(i).getJob_location().toLowerCase();
if (jTitle.toLowerCase().contains(query) ) {
filteredList.add(specilaistlist.get(i));
} else {
}
}
speclializationAdapter = new SpeclializationAdapter(getContext(),filteredList,this);
gridLayout.setAdapter(speclializationAdapter);
speclializationAdapter.notifyDataSetChanged();
}