0

我需要在 Android 系统中处理 SQLite 数据集。

在我的 dataBaseHelper 文件(DataBaseAccessor)中,我有以下代码(当附加到列表视图时显示相关数据)。

public static ArrayList<QuestionListQuestion> getQuestionListQuestions(long id){
String qry = "select QuestionListQuestionID, QuestionListQuestionQuestionListID, QuestionListQuestionQuestionID, QuestionListQuestionSortOrder, QuestionListQuestionSupplementalQuestionIDYes, QuestionListQuestionSupplementalQuestionIDNo, QuestionListQuestionSupplementalQuestionIDText, QuestionListQuestionSurveyGroupID from QuestionListQuestion  where  QuestionListQuestionQuestionListID=" + id;
ArrayList<QuestionListQuestion> list = new ArrayList<QuestionListQuestion>();
try{
    Cursor cursor = wdb.rawQuery(qry, null);
while (cursor.moveToNext()) {
QuestionListQuestion questionlistquestion = new QuestionListQuestion();
    questionlistquestion.QuestionListQuestionID = cursor.getLong(0);
    questionlistquestion.QuestionListQuestionQuestionListID = cursor.getLong(1);
    questionlistquestion.QuestionListQuestionQuestionID = cursor.getLong(2);
    questionlistquestion.QuestionListQuestionSortOrder = cursor.getLong(3);
questionlistquestion.QuestionListQuestionSupplementalQuestionIDYes = cursor.getString(4);       questionlistquestion.QuestionListQuestionSupplementalQuestionIDNo = cursor.getString(5);
questionlistquestion.QuestionListQuestionSupplementalQuestionIDText = cursor.getString(6);
questionlistquestion.QuestionListQuestionSurveyGroupID = cursor.getLong(7);
list.add(questionlistquestion);
}
    cursor.close();
}
catch (Exception e) {
    e.printStackTrace();
}
return list;
}

我现在需要扩展系统,以便我可以处理数据并根据返回的原始列表在另一个表中创建新记录。

我尝试了以下附加到按钮(从微调器中选择相关列表 ID):-

QuestionListID = (String) SiteGenerateQuestions.this.spnQuestL.getSelectedItem().toString();
long SpinnerSelectedBT;
SpinnerSelectedBT = GenerateQuestions.this.spnQuestL.getSelectedItemId();
list = DatabaseAccessor.getQuestionListQuestions(SpinnerSelectedBT);
for (int i=0; i < list.size(); i++){
Toast.makeText(SiteGenerateQuestions.this," list.get(" + i + ")   = " + list.get(i) + " "  , Toast.LENGTH_SHORT).show();
}

Toast 显示以下内容:-

list.get(0) =  com.tw.question.entity.QuestionListQuestion@407a6F70
list.get(1) =  com.tw.question.entity.QuestionListQuestion@407bc170
etc...

我如何才能访问实际数据而不是 ... .entity.QuestionListQuestion@407bc170 还是我完全偏离了轨道?

非常感谢

4

2 回答 2

0

我同意@wsanville,该get()方法将返回列表中该位置的对象。当您打印出一个对象(在 toast、log、System.out.println 等中)时,它将使用toString()打印输出中的值。默认值toString()是包名称后跟@,后跟该对象的十六进制表示。您的类将需要覆盖该toString()方法,因此当您使用get()它时,它将打印出您在toString()方法中放入的任何内容。

于 2012-08-21T14:12:48.010 回答
0

您看到的输出是因为您尚未实现类的toString()方法QuestionListQuestion。除此之外,您似乎确实拥有要查找的数据。只需尝试输出对象的 ID,而不是连接对象本身(这将toString()在后台调用)。

此外,由于单击按钮时看起来您正在执行数据库操作,因此请确保在 UI 线程之外执行数据库操作。查看文档以获得高级概述。您可能希望对有AsyncTask问题的数据库操作使用 。

于 2012-08-21T14:06:34.487 回答