Hi in the below code I was implemented recyclerview with tablelayout.when On click of the table row I have written my code.But below this is showing an error
Can any one help me where I did the mistake
patientListAdapter = new PatientListAdapter(requireContext(),getRegisterdPatientList,this); recycler_view.setAdapter(patientListAdapter);//error at this
java: popup:
public class DateTimeCoordinator extends Fragment implements PatientListCoordinatorAdapter.SelectItemClickListner {
patient_details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View customView = layoutInflater.inflate(R.layout.popup_patientlist,null);
recycler_view=customView.findViewById(R.id.recycler_view);
search=customView.findViewById(R.id.search);
popupWindow = new PopupWindow(customView,
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT,
true);
popupWindow.setTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable(
android.graphics.Color.TRANSPARENT));
popupWindow.showAtLocation(customView, Gravity.CENTER ,0, 0);
popupWindow.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
getRegisteredPatientListpopup();
recycler_view.setHasFixedSize(true);
recycler_view.setLayoutManager(new LinearLayoutManager(getContext()));
getRegisterdPatientList = new ArrayList<>();
patientListAdapter = new PatientListCoordinatorAdapter(requireContext(), getRegisterdPatientList,get);
recycler_view.setAdapter(patientListAdapter);
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) {
patientListAdapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
});
@Override public void mySelectItemListner(int i) {
}
Adapter.java:
public class PatientListCoordinatorAdapter extends RecyclerView.Adapter<PatientListCoordinatorAdapter.MyViewHolder> implements Filterable {
Context context;
ArrayList<GetRegisterdPatientListData> getRegisterdPatientListDataArrayList;
private ArrayList<GetRegisterdPatientListData> mFilteredList;
private PatientListCoordinatorAdapter.SelectItemClickListner selectItemClickListner;
public PatientListCoordinatorAdapter(Context context, ArrayList<GetRegisterdPatientListData> getRegisterdPatientListDataArrayList,PatientListCoordinatorAdapter.SelectItemClickListner selectItemClickListner){
this.context=context;
this.getRegisterdPatientListDataArrayList=getRegisterdPatientListDataArrayList;
mFilteredList=getRegisterdPatientListDataArrayList;
this.selectItemClickListner=selectItemClickListner;
}
@Override
public PatientListCoordinatorAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.table_patientlist, parent, false);
PatientListCoordinatorAdapter.MyViewHolder holder = new PatientListCoordinatorAdapter.MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull PatientListCoordinatorAdapter.MyViewHolder holder, final int i) {
if(mFilteredList!=null &&mFilteredList.size()>0){
GetRegisterdPatientListData model=mFilteredList.get(i);
holder.name.setText(model.getFName()+" "+model.getLName());
holder.reg_no.setText(model.getRegistrationNo());
holder.mobile_no.setText(model.getMobile());
selectItemClickListner.mySelectItemListner(i);
}else {
return;
}
}
@Override
public int getItemCount() {
return mFilteredList.size();
}
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
mFilteredList = getRegisterdPatientListDataArrayList;
} else {
ArrayList<GetRegisterdPatientListData> filteredList = new ArrayList<>();
for (GetRegisterdPatientListData androidVersion : getRegisterdPatientListDataArrayList) {
if (androidVersion.getFName().toLowerCase().contains(charString)||androidVersion.getLName().toLowerCase().contains(charString)||androidVersion.getRegistrationNo().toLowerCase().contains(charString)
||androidVersion.getMobile().toLowerCase().contains(charString)) {
filteredList.add(androidVersion);
}
}
mFilteredList = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = mFilteredList;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
mFilteredList = (ArrayList<GetRegisterdPatientListData>) filterResults.values;
notifyDataSetChanged();
}
};
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView name,reg_no,mobile_no,book_appointment;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
book_appointment=itemView.findViewById(R.id.book_appointment);
name=itemView.findViewById(R.id.name);
reg_no=itemView.findViewById(R.id.reg_no);
mobile_no=itemView.findViewById(R.id.mobile_num);
}
}
public interface SelectItemClickListner{
void mySelectItemListner(int i);
}
}
your Activity
or Fragment
(which holds RecyclerView
and adapter) isn't implementing PatientListAdapter.SelectIemClickListner
, instead there is an View.OnClickListener
implementation. you should add SelectIemClickListner
after coma, implement needed method ( mySelectIemListner(int i)
) and then try to build an app
some sample how it should look for and Activity
class CustomActivity : AppCompatActivity(),
View.OnClickListener, PatientListAdapter.SelectIemClickListner {
override fun mySelectIemListner(i: Integer) {
// on item click implementation
}
// rest of code
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.