android - 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);
}
它表明了这一点
解决方案
您正在使用ArrayAdapter
只能显示字符串的默认值。你看到的是调用类toString()
方法的结果Question
。
在这种情况下,您必须创建自己的适配器并实现用您的数据呈现每一行的逻辑。
推荐阅读
- python - 如何解决三个参数并使用 scipy.minimize 获得误差平方最小化?
- r - 如何在 RStudio v1.3 中完全停止 R 脚本?
- c++ - GLFW 的多个视口
- r - 解压缩空文件时如何循环函数转到下一个对象?
- c# - CarouselView 在模态页面中为空
- database - 如何捆绑 postgres db 和 docker 映像
- javascript - 为什么 Alert.prompt() 在 React Native 中不起作用?
- python - lxml 添加文字字符串
- javascript - Material UI 框架中的 withStyles 和 makeStyles 有什么区别?
- c - 程序以信号 SIGSEGV 终止,分段错误