Reputation: 51
I was trying to implement a recycler view
. but i am not able to use viewHolder
. Please find a solution. Thanks in advance
Upvotes: 4
Views: 12945
Reputation: 2734
You can try this way hope so it will be helpful for you.
public class YourAdapter extends RecyclerView.Adapter<YourAdapter.MyViewHolder> {
private List<String> myList;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title, year, genre;
public MyViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.title);
genre = (TextView) view.findViewById(R.id.genre);
year = (TextView) view.findViewById(R.id.year);
}
}
public YourAdapter(List<String> list) {
this.myList = list;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Movie movie = myList.get(position);
holder.title.setText(myList.get(position).getTitle());
}
@Override
public int getItemCount() {
return myList.size();
}
}
Upvotes: 6
Reputation: 696
Try to use just ViewHolder
instead of RecyclerView.Adapter.ViewHolder
:
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return null;
}
...
And make sure you have a ViewHolder class inside your adapter class:
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View v) {
super(v);
}
}
Hope it helps.
Upvotes: 3
Reputation: 1360
You must create a new Class inside your Adapter Class like bellow :
public class viewHolder extends RecyclerView.ViewHolder {
public TextView text;
public ImageView imageView;
public viewHolder(View v) {
super(v);
text = (TextView) v.findViewById(R.id.text);
imageView = (ImageView) v.findViewById(R.id.icon);
}
}
Upvotes: 2