android - 如何使用改造获得列表的大小?'错误 android.content.res.Resources$NotFoundException: 字符串资源 ID #0x1'
问题描述
我试图在使用改造解析 json 时获取数组的长度,但它返回错误android.content.res.Resources$NotFoundException: String resource ID #0x1
这是我的代码。JobBrowseAdapter.java
public class JobBrowseAdapter extends RecyclerView.Adapter<JobBrowseAdapter.MyViewHolder> {
private List<Job> jobList;
private Context mContext;
private String id;
public JobBrowseAdapter(Context mContext, List<Job> jobs) {
this.mContext = mContext;
this.jobList = jobs;
}
@Override
public MyViewHolder onCreateViewHolder( ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_project, viewGroup, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
Job job = jobList.get(i);
myViewHolder.title.setText(job.getTitle());
myViewHolder.skills.setText("Skills: " + job.getSkills());
myViewHolder.budget.setText(job.getBudget());
myViewHolder.bid.setText(job.getBid().size());
myViewHolder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Job job = jobList.get(i);
Toast.makeText(mContext, myViewHolder.title.getText(), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(mContext, DetailsProjectActivity.class);
intent.putExtra("idProject", job.getId());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
Toast.makeText(mContext, "Tes nih id nya: " + job.getId(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return jobList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private TextView title;
private TextView skills;
private TextView budget;
private TextView bid;
private LinearLayout parentLayout;
private MyViewHolder(@NonNull View itemView) {
super(itemView);
title = (TextView)itemView.findViewById(R.id.tvTitleJob);
skills = (TextView)itemView.findViewById(R.id.tvSkillsJob);
budget = (TextView)itemView.findViewById(R.id.tvBudgetJob);
bid = (TextView)itemView.findViewById(R.id.tvBid_Project);
parentLayout = (LinearLayout)itemView.findViewById(R.id.parent_browse_project_layout);
}
}
}
我在myViewHolder.bid.setText(job.getBid().size()); . 我也尝试使用myViewHolder.bid.setText(jobList().size()); 但它仍然给我同样的错误。如何解决这个问题?
解决方案
而不是做
myViewHolder.bid.setText(job.getBid().size());
做这个
myViewHolder.bid.setText(String.valueOf(job.getBid().size()));
使用整数值调用setText()
textview 将使其找到具有正在传递的资源 id 的字符串。在您的代码中,您传递了列表的大小,setText()
并且无法在生成的 R.string 类中找到具有该 ID 的资源字符串。
推荐阅读
- java - 删除链表中给定键的节点
- python - 在python中将多个列表合并为一个列表
- youtube-iframe-api - 嵌入 Youtube 时,用户上传和搜索结果列表突然停止显示标题和播放列表
- apache-camel - 在 Apache Camel 中,什么时候应该实现处理器?
- r - 为 splitLayout 提供列表输入
- java - 为什么带有流过滤器 peek 的编辑列表会收集工作?
- java - 根据像素的标签将二维像素数组更改为图像
- java - 添加和删除第一个节点
- mysql - 如何通过设置另一个表中的值来创建 MySQL 语句以插入到表中
- python - 将点积作为二维数组