首页 > 解决方案 > ListView 不显示项目列表它只显示包怎么办?-安卓

问题描述

我不知道该怎么办了,请帮忙,列表视图没有获取数据库中的项目,它只是显示包的东西。

//来自数据库

   public ArrayList<Question> getAllQuestions(){
    ArrayList<Question> questionList = new ArrayList<>();
    db = getReadableDatabase();
    Cursor c = db.rawQuery("SELECT * FROM " + QuestionsTable.TABLE_NAME, null);

    if (c.moveToFirst()){
        do{
            Question question = new Question();
            question.setId(c.getInt(c.getColumnIndex(QuestionsTable._ID)));
            question.setQuestion(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_QUESTION)));
            question.setOption1(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION1)));
            question.setOption2(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION2)));
            question.setOption3(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION3)));
            question.setOption4(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION4)));
            question.setAnswer(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_ANSWER)));
            question.setCategoryID(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_CATEGORY_ID)));
            questionList.add(question);
        } while (c.moveToNext());
    }
    c.close();
    return questionList;
}

//从视图问题类

   private void questionList(){
    QuizDbHelper dbHelper = QuizDbHelper.getInstance(this);
    final ArrayList<Question> questionList = dbHelper.getAllQuestions();
    ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,questionList);
    lvQuestions.setAdapter(adapter);
}

它表明了这一点

它不显示里面的东西

标签: androidlistviewandroid-sqlite

解决方案


您正在使用ArrayAdapter只能显示字符串的默认值。你看到的是调用类toString()方法的结果Question

在这种情况下,您必须创建自己的适配器并实现用您的数据呈现每一行的逻辑。


推荐阅读