有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何显示列表的内容?

在我的应用程序中,我从服务器获取一些数据,并将其显示在我的recyclerView
我不想显示所有的内容

我的适配器代码:

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

但是在上面的代码中,只显示项目0,但是我想显示所有项目

我该怎么做


共 (3) 个答案

  1. # 1 楼答案

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

    试试这个

        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());
            }
        }
    
  3. # 3 楼答案

    如果您使用了recyclerview,则其适配器具有onBindViewHolder()方法,该方法为您提供一个位置变量。使用它来遍历列表

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