android - 无法显示数组列表中的所有 lst
问题描述
我有一个包含 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 个。有什么建议或帮助吗?
解决方案
问题出在循环中:
this.mStrings[i] = mStrings[i];
你需要这样做:
this.mStrings[this.mStrings.length+i] = mStrings[i];
推荐阅读
- typescript - 如何使用预定义的键创建对象接口?
- docker - 我已经部署了带有它的服务的 Pod,我得到:未能连接到端口 80
- c++ - std::string.size() 未知行为
- javascript - 如何找到任意数量数组的最大值?
- angular - 逗号分隔不起作用打字稿(Angular 8)
- git - Git fetch 在 for-each-ref 中不显示远程分支
- android - 在后台在 Recyclerview 中显示 Coverart(来自 id3)
- css - 带有折线的文本在 Rails 中不起作用
- java - Selenium 表示元素单击“成功”,但实际上并未单击
- c# - 我想要任务详细信息以及它的功能 ID 和 vsts 中的一个查询的评论