【问题标题】:Unable to display all the lst in an arraylist无法显示数组列表中的所有 lst
【发布时间】:2023-03-27 18:05:01
【问题描述】:

我有一个包含 4 个列表项的数组,我试图在我的回收站视图中显示所有这些项,但由于某种原因,只显示了最后一个列表。

class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {

    private static final String TAG = "MainAdapter";

    List<String> mStrings[];
    int k=0;
    int len;


    public MainAdapter(List<String> mStrings[]) {
        len = mStrings.length;
        this.mStrings = new List[len];
        for(int i=0;i<mStrings.length;i++) {
            this.mStrings[i] = mStrings[i];
        }
    }

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

    @Override
    public void onBindViewHolder(@NonNull MainAdapter.ViewHolder holder, int position) {
        Log.d(TAG,"Positions from onBind are:" +mStrings);
        holder.mItemName.setText(mStrings[k].get(position));
    }


    @Override
    public int getItemCount() {
        return mStrings[k].size();

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        public TextView mItemName;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            mItemName = itemView.findViewById(R.id.item_name);
        }
     }
}

在上面的代码中,我有一个名为 mStrings[] 的列表数组,它包含 4 个列表值:

所以每个数组都有一个项目列表

[Pack 1, Pack5, Pack 8] [Pack34, Pack 82, Pack 12] [Pack 90, Pack 12, Pack982] [Pack 111, Pack 233, Pack100]

当我试图显示所有列表时,我只能显示最后一个。我知道我的代码有问题,但我无法弄清楚如何在回收站视图中显示所有 4 个。有什么建议或帮助吗?

【问题讨论】:

  • k 在哪里更新?它似乎总是 0,这就是为什么你总是从同一个列表中读取。
  • 是的,没错,K 没有更新。我将它初始化为 0 只是为了检查它是如何工作的。我在 getItemCount 方法中遇到问题,因为我无法在其中传递循环。

标签: android list arraylist android-recyclerview


【解决方案1】:

问题出在循环中:

this.mStrings[i] = mStrings[i];

你需要这样做:

this.mStrings[this.mStrings.length+i] = mStrings[i]; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多