IndexOutOfBoundsException:java.util.ArrayList.get(ArrayList.java:437)处的索引:2,大小:1

IndexOutOfBoundsException:java.util.ArrayList.get(ArrayList.java:437)处的索引:2,大小:1,java,android,android-recyclerview,retrofit,adapter,Java,Android,Android Recyclerview,Retrofit,Adapter,当我设置数据时,它会显示 String Enrolment=studentData.get(position).getEnrollments().get(position).getCourse().getTitle() 这条线 java.lang.IndexOutOfBoundsException:索引:2,大小:1位于java.util.ArrayList.get(ArrayList.java:437) 我的应用程序崩溃了我正在使用改装库获取数据 这是我的适配器类 大宗报价 公共类Studen

当我设置数据时,它会显示

String Enrolment=studentData.get(position).getEnrollments().get(position).getCourse().getTitle()

这条线

java.lang.IndexOutOfBoundsException:索引:2,大小:1位于java.util.ArrayList.get(ArrayList.java:437)

我的应用程序崩溃了我正在使用改装库获取数据

这是我的适配器类

大宗报价

公共类StudentAdapter扩展了RecyclerView.Adapter{


}

异常表示您试图访问大小为1(大小为1)的列表的第三个元素(索引:2)。出现错误的代码行是:

String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();
在这一行中,您尝试使用.get(position)方法访问studentData和注册。您使用的索引是位置,我假设它等于2。因此,问题是学生数据或注册中的元素少于3个。

更改此设置

String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();

ArrayList enrolment=studentData.get(position.getEnrollments())
ArrayList enrolmentData=新建ArrayList();

对于(int i=0;i假设学生信息列表中有5名学生,第3名学生只有2名注册

如果您尝试字符串enrolment=studentData.get(position.getEnrollments().get(position.getCourse().getTitle()

i、 e,String enrolment=studentData.get(2).getEnrolments().get(2).getCourse().getTitle()

问题出在这里。你只有两次注册,第三次注册却没有。希望你收到了

@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;
}
String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();
String enrloment = studentData.get(position).getEnrollments().get(position).getCourse().getTitle();
ArrayList<Enrollment> enrloment = studentData.get(position).getEnrollments()
ArrayList<String> enrolmentData = new ArrayList();
for(int i =0;i<enrloment.size();i++){
      enrolmentData.add(enrloment.get(i).getCourse().getTitle());
}