2013-08-31 67 views
0

我有这个函数返回用户评估的数组列表。每个评估都有一个问题数组列表。我从数据库中得到问题,但是当我将评估arrayList返回给用户时,问题arrayList是空的。任何人都可以帮助我填充问题数组。数据没有从数据库中正确地返回

注: 当我从代码做到这一点Log.v("--", "Questions: " + questions.size());波纹管它给我的尺寸前。 90,但在那之后一排,当我做 Log.v("--", "AssessmentQuestions: "+assessment.getQuestions().size());它给了我size: 0

这里是我的代码:

public ArrayList<Assessment> getAllAsssessments() { 
     ArrayList<Assessment> assessments = new ArrayList<Assessment>(); 
     Assessment assessment; 
     String selectQuery = "SELECT * FROM " + TSCYC; 
     Cursor cursor = database.rawQuery(selectQuery, null); 
     if (cursor.moveToFirst()) { 
      do { 
       int AssessmentID = cursor.getInt(0); 
       int childID = cursor.getInt(1); 
       int doctorID = cursor.getInt(2); 
       String assessmentDate = cursor.getString(3); 
       Log.v("--", assessmentDate); 
       ArrayList<Question> questions = new ArrayList<Question>(); 
       Question q; 
       assessment = new Assessment(AssessmentID, assessmentDate, 
         doctorID, childID, questions); 
       for (int i = 0; i < 90; i++) { 
        q = new Question("i", (i + 1)); 
        q.setAnswer(cursor.getInt(i + 4)); 
        questions.add(q); 
       } 
       Log.v("--", "Questions: " + questions.size()); 
       assessment = new Assessment(AssessmentID, assessmentDate, 
         doctorID, childID, questions); 
       assessments.add(assessment); 
       Log.v("--", "AssessmentQuestions: " 
         + assessment.getQuestions().size()); 
      } while (cursor.moveToNext()); 

     } 
     return assessments; 
    } 

的Assessmen类:

import java.io.Serializable; 
import java.util.ArrayList; 

public class Assessment implements Serializable { 

    private static final long serialVersionUID = 1288566422025895376L; 
    private String date; 
    private int doctorID, childID, id; 
    private ArrayList<Question> questions; 

    public Assessment(int id, String date, int doctorID, int childID, 
      ArrayList<Question> questions) { 
     questions = new ArrayList<Question>(); 
     this.id = id; 
     this.setDate(date); 
     this.setDoctorID(doctorID); 
     this.setChildID(childID); 
     this.setQuestions(questions); 

    } 

    public String getDate() { 
     return date; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 

    public int getDoctorID() { 
     return doctorID; 
    } 

    public void setDoctorID(int doctorID) { 
     this.doctorID = doctorID; 
    } 

    public int getChildID() { 
     return childID; 
    } 

    public void setChildID(int childID) { 
     this.childID = childID; 
    } 

    public ArrayList<Question> getQuestions() { 
     return questions; 
    } 

    public void setQuestions(ArrayList<Question> questions) { 
     this.questions = questions; 
    } 

} 

问题类:

public class Question implements Serializable{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 8703113563916355470L; 
    private String question; 
    private int answer, position; 

    public Question(String question, int position) { 
     answer = -1; 
     this.question = question; 
     this.position = position; 
    } 

    public int getAnswer() { 
     return answer; 
    } 

    public void setAnswer(int answer) { 
     this.answer = answer; 
    } 

    public int getPosition() { 
     return position; 
    } 

    public void setPosition(int position) { 
     this.position = position; 
    } 

    public String getQuestion() { 
     return question; 
    } 

    public void setQuestion(String question) { 
     this.question = question; 
    } 
} 
+1

你的Assesment构造函数是什么样的?确定那里一切正常吗? – pumpkee

+0

确实,在评估中你有什么“新”的东西,我有一种感觉会成为问题。无论我们需要一个完整的(简短)程序来与 –

+0

@RichardTingle一起工作,你能在解答中更多地解释我吗? –

回答

2

在您的构造函数中,您没有警察IED中参考的问题数组列表,你已经创建了一个新的ArrayList,请参见下面的代码标记点:

public Assessment(int id, String date, int doctorID, int childID, 
     ArrayList<Question> questions) { 
    questions = new ArrayList<Question>(); //<-- here you make a NEW empty ArrayList 
    this.id = id; 
    this.setDate(date); 
    this.setDoctorID(doctorID); 
    this.setChildID(childID); 
    this.setQuestions(questions); //<-- here you setQuestions as the empty arraylist 

} 

你到底做的线questions = new ArrayList<Question>();,据我可以看到它可以简单地省略。

+0

haha​​忘记了这段代码,感谢您的帮助! –

+0

@DarkoPetkovski我被旧调试代码绊倒的次数。很高兴我能帮上忙! –

相关问题