我目前正在使用从SQLite数据库填充的listview。
public Set<String> getData() {
Set<String> set = new HashSet<String>();
String selectQuery = "select * from " + TABLE;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
set.add(cursor.getString(1));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return set;
}
然后用
填充列表视图private void populateListView() {
lv = (ListView) findViewById(R.id.listViewSetLocks);
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
Set<String> set = db.getData();
List<String> list = new ArrayList<String>(set);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, list );
lv.setAdapter(arrayAdapter);
registerForContextMenu(lv);
}
这一切都很完美。我决定稍微更改布局并使用2行列表视图,因此我需要访问数据库不同行中的数据。
对我来说,最好的方法是什么?
感谢
答案 0 :(得分:0)
从我认为你的想法或许尝试阅读: http://www.vogella.com/tutorials/AndroidListView/article.html Lars Vogel做了非常好的教程
通过扩展Array或Cursor适配器,您可以更好地创建自定义适配器。
也许看看: http://www.learn-android-easily.com/2013/06/listview-with-custom-adapter.html
答案 1 :(得分:0)
为此,您必须创建custom listview。自定义列表视图允许您使用多个视图/文本视图来扩充自定义列表项布局。
对于数据库,只需要两个查询就可以通过以下方式获取不同的列值:
String selectQueryCombined = "select "+ col1+","+col2+"from " + TABLE;
Cursor cursor = db.rawQuery(selectQuery, null);
//To Retrieve value :
String val=c.getString(c.getColumnIndex(Col1));
String val1=c.getString(c.getColumnIndex(Col));
现在只需在自定义列表视图项的文本视图中设置这些值。
希望这有帮助!