Android 在reycler视图中设置大数据中的有限数据

Android 在reycler视图中设置大数据中的有限数据,android,android-recyclerview,Android,Android Recyclerview,我只需要在Recyclerview中设置API中的四个数据。API中的数据是动态的。如果有4个以上的数据,那么最后一个数据应该隐藏起来,最近的数据应该显示在顶部。我已经研究过了,但找不到适用的解决方案 我的助手 public class EventRecyclerAdapter extends RecyclerView.Adapter<EventRecyclerAdapter.MyViewHolder> { Context context; private ArrayList<

我只需要在Recyclerview中设置API中的四个数据。API中的数据是动态的。如果有4个以上的数据,那么最后一个数据应该隐藏起来,最近的数据应该显示在顶部。我已经研究过了,但找不到适用的解决方案

我的助手

public class EventRecyclerAdapter extends RecyclerView.Adapter<EventRecyclerAdapter.MyViewHolder> {
Context context;
private ArrayList<String> start;
private AdapterView.OnItemClickListener listener;
private ArrayList<String> desc;
private ArrayList<EventData>data;


public EventRecyclerAdapter(Context context, ArrayList<EventData> data) {
    this.context = context;
    this.data = data;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.content_events, parent, false);

    return new EventRecyclerAdapter.MyViewHolder(itemView);


}

@Override
public void onBindViewHolder(EventRecyclerAdapter.MyViewHolder holder, int position) {
    holder.start.setText(data.get(position).getStartDate());

    holder.des.setText(Html.fromHtml(data.get(position).getName()));
}


@Override
public int getItemCount() {
    return data.size();
}


public class MyViewHolder extends RecyclerView.ViewHolder {
    private TextView start, des, viewall,name;

    private CardView cardView;


    public MyViewHolder(View itemView) {
        super(itemView);

        start = (TextView) itemView.findViewById(R.id.startdate);

        des = (TextView) itemView.findViewById(R.id.description);

        viewall = (TextView) itemView.findViewById(R.id.viewall);




    }

}

}
  • 你也可以查一下
  • 你也可以查一下

如果您在适配器中获取的阵列列表中短接了数据,则使用此代码仅显示5项

  @Override
public int getItemCount() {
        if (data!= null && data.size() < 5) {
            return data.size();
        } else {
            return 5;
        }

 }
@覆盖
public int getItemCount(){
if(data!=null&&data.size()<5){
返回data.size();
}否则{
返回5;
}
}
若您有一个随机顺序的数据列表,那个么首先将其从最新短到旧,并发送到适配器


希望它对您有用。

如果您在适配器中获得的阵列列表中短接了数据,则使用此代码仅显示5项

  @Override
public int getItemCount() {
        if (data!= null && data.size() < 5) {
            return data.size();
        } else {
            return 5;
        }

 }
@覆盖
public int getItemCount(){
if(data!=null&&data.size()<5){
返回data.size();
}否则{
返回5;
}
}
若您有一个随机顺序的数据列表,那个么首先将其从最新短到旧,并发送到适配器


希望它对您有用。

添加您的代码和您尝试的内容我已经编辑了问题@PiergiorgiomIsley添加您的代码和您尝试的内容我已经编辑了问题@PiergiorgiomIsley这个解决方案在性能方面是不够的,您可能有大的数据结构,并且只使用前4个元素,您应该找到一种只保留并更新所需数据的方法。就性能而言,此解决方案是不够的,您可能有大型数据结构,并且只使用前4个元素,您应该找到一种只保留并更新所需数据的方法。
  @Override
public int getItemCount() {
        if (data!= null && data.size() < 5) {
            return data.size();
        } else {
            return 5;
        }

 }