You must change:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.TextViewHolder>
for
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
And then change your onCreateViewHolder to accept multiple ViewTypes:
@Override
public MyAdapter.TextViewHolder onCreateViewHolder(ViewGroup parent,
int viewType)
for
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType)
And then change the onBindViewHolder method:
@Override
public void onBindViewHolder(TextViewHolder TextViewHolder, int position)
for
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position)
And don't forget to set ViewHolder types:
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType){
switch (viewType) {
case TYPE_IMAGE: {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.XXX, parent, false);
return new ImageViewHolder(itemView);
}
case TYPE_GROUP: {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.XXX, parent, false);
return new TextViewHolder(itemView);
}
}
source
share