2017-03-14 113 views
0

我已經創建類擴展RecycleViewAdapterAndroid Studio但它顯示以下錯誤。不抽象和不重寫抽象方法onCreateViewHolder使用recyclerView在android

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(); 
} 
} 

回答

0

你必須從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); 

} 
0

在您的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; 
} 
0

由於錯誤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); 
} 
相關問題