我试图通过将其列在ListView中来查看我的数据库的内容。我究竟做错了什么?目标是在页面按钮点击主页后加载页面时加载数据库数据列表。Android - 如何将数据库行放入ListView?
的XML页面只是有一个ListView,名为 “studentList”,一个ScrollView
的Java代码中:
public class edit_student extends AppCompatActivity {
private dbasemanager dBase;
private ListView studentInfoList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_student);
dBase.openReadable();
studentInfoList = (ListView)findViewById(R.id.studentList);
ArrayList dBaseContent = dBase.retrieveRows();
ArrayAdapter arrayAdpt = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, dBaseContent);
studentInfoList.setAdapter(arrayAdpt);
dBase.close();
}
}
这是openReadable()功能:
public dbasemanager openReadable() throws android.database.SQLException {
helper = new SQLHelper(context);
db = helper.getReadableDatabase();
return this;
}
这是retrieveRows()功能:
public ArrayList retrieveRows() {
ArrayList studentRows = new ArrayList<>();
String[] columns = new String[] {"sid", "first_name", "last_name"};
Cursor cursor = db.query(Table_Name, columns, null, null, null, null, null);
cursor.moveToFirst();
while (cursor.isAfterLast() == false) {
studentRows.add(cursor.getString(0) + ", " + cursor.getString(1)
+ ", " + cursor.getString(2));
cursor.moveToNext();
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return studentRows;
}
的logcat:
+0
您需要创建一个自定义'ArrayAdapter' –
+0
@CodeWalker来显示一个不需要自定义适配器的字符串ArrayList。 –
+0
你确切的问题是什么?列表中没有显示任何内容?你有什么错误吗?顺便说一句:你确定通过retrieveRows()返回的数组不是空的? –