java - IndexOutOfBoundsException:索引:2,大小:1 在 java.util.ArrayList.get(ArrayList.java:437)
问题描述
当我设置它说的数据时
String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();
这条线
java.lang.IndexOutOfBoundsException:索引:2,大小:1 在 java.util.ArrayList.get(ArrayList.java:437)
我的应用程序崩溃了我正在使用改造库来获取数据
这是我的适配器类
块引用
公共类 StudentAdapter 扩展 RecyclerView.Adapter<StudentAdapter.StudentViewholde> {
private Context context;
private List<StudentInformation>studentData;
public StudentAdapter(Context context, List<StudentInformation> studentData) {
this.context = context;
this.studentData = studentData;
}
public void setStudentData(List<StudentInformation> studentData) {
this.studentData = studentData;
notifyDataSetChanged();
}
@NonNull
@Override
public StudentViewholde onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.single_raw,parent,false);
return new StudentViewholde(view);
}
@Override
public void onBindViewHolder(@NonNull StudentViewholde holder, int position) {
StudentInformation studentInformation = studentData.get(position);
holder.idTv.setText(studentInformation.getID().toString());
holder.nameTv.setText(studentInformation.getFirstMidName());
holder.enrolmentId.setText(studentInformation.getEnrollments().get(position).getStudentID().toString());
}
@Override
public int getItemCount() {
return studentData.size();
}
class StudentViewholde extends RecyclerView.ViewHolder{
TextView idTv,nameTv,enrolmentId;
public StudentViewholde(@NonNull View itemView) {
super(itemView);
idTv = itemView.findViewById(R.id.idTv);
nameTv = itemView.findViewById(R.id.name);
enrolmentId = itemView.findViewById(R.id.enrollmentDate);
}
}
}
这是我的学生信息 Pojo 课程
公共类学生信息{
@SerializedName("Enrollments")
@Expose
private List<Enrollment> enrollments ;
@SerializedName("ID")
@Expose
private Integer iD;
@SerializedName("LastName")
@Expose
private String lastName;
@SerializedName("FirstMidName")
@Expose
private String firstMidName;
@SerializedName("EnrollmentDate")
@Expose
private String enrollmentDate;
public List<Enrollment> getEnrollments() {
return enrollments;
}
public void setEnrollments(List<Enrollment> enrollments) {
this.enrollments = enrollments;
}
public Integer getID() {
return iD;
}
public void setID(Integer iD) {
this.iD = iD;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstMidName() {
return firstMidName;
}
public void setFirstMidName(String firstMidName) {
this.firstMidName = firstMidName;
}
public String getEnrollmentDate() {
return enrollmentDate;
}
public void setEnrollmentDate(String enrollmentDate) {
this.enrollmentDate = enrollmentDate;
}
}
这是我的入学 pojo 课
公共类注册{
@SerializedName("Course")
@Expose
private Course course;
@SerializedName("EnrollmentID")
@Expose
private Integer enrollmentID;
@SerializedName("CourseID")
@Expose
private Integer courseID;
@SerializedName("StudentID")
@Expose
private Integer studentID;
@SerializedName("Grade")
@Expose
private Integer grade;
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
public Integer getEnrollmentID() {
return enrollmentID;
}
public void setEnrollmentID(Integer enrollmentID) {
this.enrollmentID = enrollmentID;
}
public Integer getCourseID() {
return courseID;
}
public void setCourseID(Integer courseID) {
this.courseID = courseID;
}
public Integer getStudentID() {
return studentID;
}
public void setStudentID(Integer studentID) {
this.studentID = studentID;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
}
解决方案
异常意味着您正在尝试访问大小为 1(大小:1)的列表的第三个元素(索引:2)。您收到错误的代码行是:
String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();
在这一行中,您尝试使用 .get(position) 方法访问 studentData 和注册。您使用的索引是我假设等于 2 的位置。所以问题是 studentData 或注册里面的元素少于 3 个。
推荐阅读
- python - 遇到循环计算数字中位数的问题
- flutter - 我如何定义帖子列表的最后一个文档?
- jenkins - 如何在 Jenkins 工作中包含并行条件
- r - 尝试使用我的函数时出现“参数不是数字或逻辑:返回 NA”错误。谁能帮我调试一下?
- python - 使用 js_link 在 Bokeh 中添加下拉选择器时遇到问题
- asp.net-core - 调用 Clients.Others.SendAsync 断开收件人
- ms-access - MS Access 无法在表中同时保存 i 和 ɪ
- git - 如何在实时 git 存储库中分离链接对象(或如何从共享镜像中删除内部引用)
- python - verify_jwt_in_request() 在自定义 Flask Decorator 中调用时返回 None
- flutter - 使用 FutureBuilder 时为孩子设置动画