簡體   English   中英

不是抽象的,並且不會在Android中使用recyclerView覆蓋onCreateViewHolder的抽象方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM