gpt4 book ai didi

android - 仅当 getItemCount 返回大于数组大小时 1 时才调用 OnBindView

转载 作者:行者123 更新时间:2023-11-29 19:30:13 24 4
gpt4 key购买 nike

我遇到了一个奇怪的错误,如果 getItemCount 返回 1(数据结构的大小),适配器不会显示任何卡片。

我的适配器代码 -

public class SingleAdapter extends RecyclerView.Adapter<SingleAdapter.ViewHolder> {
private ArrayList<String> names = new ArrayList<String>();

public SingleAdapter() {
names.add("Rajma Chawal"); //Just for testing purposes
}

public static class ViewHolder extends RecyclerView.ViewHolder {
private CardView cardView;
public ViewHolder(CardView v) {
super(v);
cardView=v;
}
}

@Override
public SingleAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
CardView cv = (CardView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_order, parent, false);
return new ViewHolder(cv);
}

public void onBindViewHolder(ViewHolder holder, final int position) {
CardView cardView = holder.cardView;
TextView textView = (TextView) cardView.findViewById(R.id.info_name);
textView.setText(names.get(position));
}

public int getItemCount() {
return names.size();
// return 2; Generates a card if I do this
//and put a constant in place of Textview.setText("kk"); like this.
// Otherwise occurs in an outofbounds exception
}

我不知道为什么它要求我在计数中有 1,否则不会生成卡片。我是初学者,如果这个问题太琐碎,我很抱歉。

编辑:我检查了数组,看起来它一定是 Arraylists 本身的问题,数组是正常的。

最佳答案

getItemCount() 告诉 Adapter 有多少行要显示。如果 List 的大小为零,则表示 RecyclerView 中没有要显示的行。

现在,当您添加一个条目(您正在 Constructor 中执行此操作)时,list 的大小会更改为 1。然后 Adapter 调用 getItemCount() 返回 list 的大小(现在是一个)并填充 Adapter相应地。

关于android - 仅当 getItemCount 返回大于数组大小时 1 时才调用 OnBindView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40174881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com