Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未正确从数据库返回数据_Java_Android_Arraylist_Android Sqlite - Fatal编程技术网

Java 未正确从数据库返回数据

Java 未正确从数据库返回数据,java,android,arraylist,android-sqlite,Java,Android,Arraylist,Android Sqlite,我有一个函数,它将评估的arraylist返回给用户。每项评估都有一系列问题。我从数据库中获取问题,但当我将评估arrayList返回给用户时,问题arrayList为空。有人能帮我填充问题数组吗 注意: 当我这样做时,Log.v(“-”,“Questions:”+Questions.size())从下面的代码中,它给我的尺寸是ex.90,但在那之后的一行,当我这样做的时候 Log.v(“-”,“AssessmentQuestions:“+assessment.getQuestions().si

我有一个函数,它将评估的arraylist返回给用户。每项评估都有一系列问题。我从数据库中获取问题,但当我将评估arrayList返回给用户时,问题arrayList为空。有人能帮我填充问题数组吗

注意: 当我这样做时,
Log.v(“-”,“Questions:”+Questions.size())从下面的代码中,它给我的尺寸是ex.90,但在那之后的一行,当我这样做的时候
Log.v(“-”,“AssessmentQuestions:“+assessment.getQuestions().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;
    }

在构造函数中,您没有复制对问题数组列表的引用,而是创建了一个新的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

}
公共评估(int-id、字符串日期、int-doctorID、int-childID、,
ArrayList问题){

questions=new ArrayList();//您的评估构造函数是什么样子的?确定那里一切正常吗?事实上,在评估中,您是否有任何带有
new
的内容,我感觉这将是问题所在。不管我们是否需要完整(简短)的工作计划with@RichardTingle你能在回答中给我解释一下吗?我们至少需要评估类的代码。我知道这有数据库集成,所以制作一个自包含的示例很困难,但我们没有足够的代码来处理here@RichardTingle代码更新并添加了类requested@DarkoPetkovski 我被旧的调试代码绊倒的次数。很高兴我能帮上忙!
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;
    }
}
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

}