RedBounce
RedBounce

Reputation: 213

How to show the contents of a list?

In my application I get some data from server and show this into my recyclerView.
I want show all of list content not show just item 0.

My adapter codes:

public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder> {

private ArrayList<Post> postList;
private Context context;
private ListItemClickListener itemClickListener;

public PostsAdapter(Context context, ArrayList<Post> allPostList) {
    this.context = context;
    postList = allPostList;
}

public void setItemClickListener(ListItemClickListener itemClickListener) {
    this.itemClickListener = itemClickListener;
}


@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post, parent, false);
    return new ViewHolder(view, viewType, itemClickListener);
}

public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    private ImageView imgPost;
    private TextView tvPostTitle, tvPostCategory, tvPostDate;
    private CardView mCardView;
    private ListItemClickListener itemClickListener;


    public ViewHolder(View itemView, int viewType, ListItemClickListener itemClickListener) {
        super(itemView);

        this.itemClickListener = itemClickListener;
        // Find all views ids
        imgPost = (ImageView) itemView.findViewById(R.id.post_img);
        tvPostTitle = (TextView) itemView.findViewById(R.id.title_text);
        tvPostCategory = (TextView) itemView.findViewById(R.id.post_category);
        tvPostDate = (TextView) itemView.findViewById(R.id.date_text);
        mCardView = (CardView) itemView.findViewById(R.id.card_view_top);

        mCardView.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        if (itemClickListener != null) {
            itemClickListener.onItemClick(getLayoutPosition(), view);
        }
    }
}

@Override
public int getItemCount() {
    return (null != postList ? postList.size() : 0);

}

@Override
public void onBindViewHolder(PostsAdapter.ViewHolder mainHolder, int position) {
    final Post model = postList.get(position);

    // setting data over views
    String title = model.getTitle().getRendered();
    mainHolder.tvPostTitle.setText(Html.fromHtml(title));

    String imgUrl = null;
    if (model.getEmbedded().getWpFeaturedMedias().size() > 0) {
        if (model.getEmbedded().getWpFeaturedMedias().get(0).getMediaDetails() != null) {
            if (model.getEmbedded().getWpFeaturedMedias().get(0).getMediaDetails().getSizes().getFullSize().getSourceUrl() != null) {
                imgUrl = model.getEmbedded().getWpFeaturedMedias().get(0).getMediaDetails().getSizes().getFullSize().getSourceUrl();
            }
        }
    }

    if (imgUrl != null) {
        Glide.with(context)
                .load(imgUrl)
                .into(mainHolder.imgPost);
    } else {
        Glide.with(context)
                .load(R.color.imgPlaceholder)
                .into(mainHolder.imgPost);
    }

    String category = null;

    if (model.getEmbedded().getWpTerms().size() >= 1) {
        category = model.getEmbedded().getWpTerms().get(0).get(0).getName();
    }
    if (category == null) {
        category = context.getResources().getString(R.string.default_str);
    }
    mainHolder.tvPostCategory.setText(Html.fromHtml(category));
    mainHolder.tvPostDate.setText(model.getFormattedDate());
}
}

but in above code just show me item 0 , but I want show all of items.

how can I it?

Upvotes: 2

Views: 301

Answers (3)

Anonymous
Anonymous

Reputation: 1320

If you have used recyclerview , its adapter has onBindViewHolder() method , which gives you a position variable. Use that to iterate through the list!

model.getEmbedded().getWpFeaturedMedias().get(position).getMediaDetails()

Upvotes: 0

AskNilesh
AskNilesh

Reputation: 69689

Try this

    for (int i = 0; i < model.getEmbedded().getWpTerms().size(); i++) {
        for (int j=0;j<model.getEmbedded().getWpTerms().get(i).size();j++){

            Log.e("DATA",model.getEmbedded().getWpTerms().get(i).get(j).getName());
        }
    }

Upvotes: 1

Nik
Nik

Reputation: 2060

String category = "";
for(int i=0; response.size();i++){
{
category = category + "," +  model.getEmbedded().getWpTerms().get(i).get(i).getName();
}

Upvotes: 1

Related Questions