2017-09-17 8 views
0

JSONデータがArrayListに格納されています。すべてのデータは完全に格納されますが、ArrayListから取得しようとすると、ArrayListは最後のレコードのみを取得します。最後のデータは、上記のarraylistからデータを取得しません。

MainActivity:

ArrayList<ATTENDANCE> empJsonList = new ArrayList<>(); 
ATTENDANCE attend = new ATTENDANCE(); 

if (jsonArray != null) { 
    for (int j = 0; j < 1; j++) { 
     JSONObject jsonObject = jsonArray.getJSONObject(j); 

     UserName = jsonObject.getString("StudentName"); 
     RollNo = jsonObject.getString("RollNo"); 
     Standard = jsonObject.getString("Standard"); 
     Division = jsonObject.getString("Division"); 

     attend.setUserName(UserName); 
     attend.setRollNo(RollNo); 
     attend.setStandard(Standard); 
     attend.setDivision(Division); 

     // Log.i("result", s); 
    } 

    for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject jsonObject1 = jsonArray.getJSONObject(i); 
     String date = jsonObject1.getString("AttendanceDate"); 
     //Dirty conversion 
     String replaceDate = date.replace("/Date(", "").replace(")/", ""); 
     Long getDate = Long.valueOf(replaceDate); 
     //calendar.setTimeInMillis(timeInMillis); 
     //AttendanceDate = calendar.getTime().toGMTString(); 
     AttendanceDate = dateFormat.format(getDate); 
     Attendance_Type = jsonObject1.getString("Attendance_Type"); 
     Remark = jsonObject1.getString("Remark"); 

     attend.setAttendanceDate(AttendanceDate); 
     attend.setAttendance_type(Attendance_Type); 
     attend.setRemark(Remark); 

     try { 
      empJsonList.add(attend); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

が出席:

private String standard, division, stdDiv, attendance_type, remark, attendanceDate, userName; 
private String rollNo; 
private int id; 

public String getStandard() { 
    return standard; 
} 

public void setStandard(String standard) { 
    this.standard = standard; 
} 

public String getDivision() { 
    return division; 
} 

public void setDivision(String division) { 
    this.division = division; 
} 

public String getAttendance_type() { 
    return attendance_type; 
} 

public void setAttendance_type(String attendance_type) { 
    this.attendance_type = attendance_type; 
} 

public String getRemark() { 
    return remark; 
} 

public void setRemark(String remark) { 
    this.remark = remark; 
} 

public String getAttendanceDate() { 
    return attendanceDate; 
} 

public void setAttendanceDate(String attendanceDate) { 
    this.attendanceDate = attendanceDate; 
} 

public String getUserName() { 
    return userName; 
} 

public void setUserName(String userName) { 
    this.userName = userName; 
} 

public String getRollNo() { 
    return rollNo; 
} 

public void setRollNo(String rollNo) { 
    this.rollNo = rollNo; 
} 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String toString() 
{ 
    return id + " : " + userName + " : " + standard + " : " + division + " : " + rollNo 
     + " : " + attendance_type + " : " + attendanceDate + " : " + remark ; 

    //return "id : " + id + "userName : " + userName + "standard:" + standard 
    // + "division: " + division + "rollNo:" + rollNo + 
} 

答えて

0

あなたは、新しいデータを追加するために再度同じオブジェクトを使用している:

ATTENDANCE attend = new ATTENDANCE(); 

あなたは上記を配置する必要があります新しいオブジェクトが追加されていることを確認するためにデータを設定する前に、ループのための内側の線

ATTENDANCE attend = new ATTENDANCE(); 
attend.setAttendanceDate(AttendanceDate); 
attend.setAttendance_type(Attendance_Type); 
attend.setRemark(Remark); 
empJsonList.add(attend); 
+0

出席クラスのオブジェクトがすでにループについては、以下を使用しているため、この働いていません。 – Zala

+0

ArrayListにデータが完全に格納されていますが、データがArraylistから取得されたときには、最後のレコードのみを返します。上記のデータは入手できません。私が格納したと仮定して – Zala

+0

私はArraylistに10のデータを格納しました。 Arraylistに10個のデータが完全に保存されていますが、最後のレコードを取得して最終レコード10個のレコードを表示する場合。 9以上のデータは表示されません。 – Zala

関連する問題