[英]Not abstract and does not override abstract method onCreateViewHolder using recyclerView in android
我已經創建了可在Android Studio
擴展RecycleView
for Adapter
類,但它顯示以下錯誤。
Error:(20, 8) error: HR_Vacancy_Adapter is not abstract and does not override abstract method onCreateViewHolder(ViewGroup,int) in Adapter
Error:(47, 31) error: onCreateViewHolder(ViewGroup,int) in HR_Vacancy_Adapter cannot override onCreateViewHolder(ViewGroup,int) in Adapter
return type HR_Vacancy_Adapter is not compatible with HR_Vacancy_Adapter.MyViewHolder
where VH is a type-variable:
VH extends ViewHolder declared in class Adapter
這是我的Adapter
public class HR_Vacancy_Adapter extends RecyclerView.Adapter<HR_Vacancy_Adapter.MyViewHolder> {
private List<HRVacancy> arr_hrvacancy;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView tv_RAFno, tv_jobtitle, tv_postition, tv_Salary;
public ImageView iv_companylogo;
public MyViewHolder(View view) {
super(view);
tv_RAFno = (TextView) view.findViewById(R.id.tv_RAFno);
tv_jobtitle = (TextView) view.findViewById(R.id.tv_jobtitle);
tv_postition = (TextView) view.findViewById(R.id.tv_postition);
tv_Salary = (TextView) view.findViewById(R.id.tv_Salary);
iv_companylogo = (ImageView) view.findViewById(R.id.iv_companylogo);
}
}
public HR_Vacancy_Adapter(List<HRVacancy> arr_hrvacancy) {
this.arr_hrvacancy = arr_hrvacancy;
}
@Override
public HR_Vacancy_Adapter onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_hr_vacancy, parent, false);
return MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
HRVacancy hrvacancy = arr_hrvacancy.get(position);
holder.tv_RAFno.setText(hrvacancy.getRafNo());
holder.tv_jobtitle.setText(hrvacancy.getPost());
holder.tv_postition.setText(hrvacancy.getPostition());
holder.tv_Salary.setText(hrvacancy.getSalary());
holder.iv_companylogo.setBackgroundResource(R.drawable.icon_app);
}
@Override
public int getItemCount() {
return arr_hrvacancy.size();
}
}
您必須從onCreateViewHolder()返回HR_Vacancy_Adapter.MyViewHolder 。
替換為:
@Override
public HR_Vacancy_Adapter onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_hr_vacancy, parent, false);
return MyViewHolder(itemView);
}
有了這個:
@Override
public HR_Vacancy_Adapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_hr_vacancy, parent, false);
return MyViewHolder(itemView);
}
在onCreateViewHolder()
您需要返回Viewholder
實現。
使用以下代碼:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_hr_vacancy, parent, false);
MyViewHolder holder = new MyViewHolder(itemView);
return holder;
}
由於錯誤HR_Vacancy_Adapter與HR_Vacancy_Adapter.MyViewHolder不兼容,因此僅返回自己的視圖持有者是不夠的,而且綁定持有者必須是您自己的類型。
@Override
public HR_Vacancy_Adapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_hr_vacancy, parent, false);
return MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(HR_Vacancy_Adapter.MyViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
HRVacancy hrvacancy = arr_hrvacancy.get(position);
holder.tv_RAFno.setText(hrvacancy.getRafNo());
holder.tv_jobtitle.setText(hrvacancy.getPost());
holder.tv_postition.setText(hrvacancy.getPostition());
holder.tv_Salary.setText(hrvacancy.getSalary());
holder.iv_companylogo.setBackgroundResource(R.drawable.icon_app);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.