如何使用改型获得列表的大小? '错误android.content.res.Resources $ NotFoundException:字符串资源ID#0x1'

时间:2019-01-20 10:41:28

标签: android json retrofit

在使用翻新解析json时,我尝试获取数组的长度,但返回错误 android.content.res.Resources $ NotFoundException:字符串资源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()); ,但它仍然给我同样的错误。 该如何解决?

2 个答案:

答案 0 :(得分:0)

使用myViewHolder.bid.setText(String.valueOf(job.getBid().size())); 您正在尝试将非String值设置为setText()方法,以使这种情况发生

答案 1 :(得分:0)

代替做

myViewHolder.bid.setText(job.getBid().size());

执行此操作

myViewHolder.bid.setText(String.valueOf(job.getBid().size()));

调用具有整数值的setText()到textview将使它找到一个带有正在传递的资源ID的字符串。在您的代码中,您正在传递setText()中列表的大小,并且无法在生成的R.string类中找到具有该ID的资源字符串。