嗨,在下面的代码中,我用表格布局实现了recyclerview。当点击表格行时,我已经编写了代码。但下面显示了一个错误
有人能帮我在哪里犯了错误吗
patientListAdapter=新的patientListAdapter(requireContext((,getRegisterPatientList,this(;recycler_view.setAdapter(patientListAdapter(//这个错误
java:弹出窗口:
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) {
}
});
}
});
@Overridepublic 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);
}
}
您的Activity
或Fragment
(包含RecyclerView
和适配器(没有实现PatientListAdapter.SelectIemClickListner
,而是有一个View.OnClickListener
实现。你应该在昏迷后添加SelectIemClickListner
,实现所需的方法(mySelectIemListner(int i)
(,然后尝试构建一个应用
它应该如何查找和Activity
的一些示例
class CustomActivity : AppCompatActivity(),
View.OnClickListener, PatientListAdapter.SelectIemClickListner {
override fun mySelectIemListner(i: Integer) {
// on item click implementation
}
// rest of code