[英]How to set the view of arrayadapter in listview
我正在嘗試執行以下操作:
sqlite database
讀取數據 listview
設置這些數據 所以我實現了一個查詢來檢索數據庫中的所有用戶
SQLController.java
public List<User> getAllUsers() {
List<User> UserList = new ArrayList<User>();
// Select All Query
String selectQuery = "SELECT * FROM " + DBHelper.TABLE_USER;
Cursor cursor = database.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
User User = new User();
User.set_id(Integer.parseInt(cursor.getString(0)));
User.setFname(cursor.getString(1));
User.setLname(cursor.getString(2));
User.setSex(cursor.getString(3));
User.setAge(cursor.getString(4));
// Adding User to list
UserList.add(User);
} while (cursor.moveToNext());
}
// return User list
return UserList;
}
然后,我在擴展Acticity
的MainActivity.java
中編寫以下代碼
UserList = (ListView) findViewById(R.id.memberList_id);
List<User> Users = dbcon.getAllUsers();
ArrayAdapter<User> adapter = ArrayAdapter(this, R.layout.user, Users);
UserList.setAdapter(adapter);
現在,我100%困惑下一步該做什么。 我知道我必須實現getView ()
但是當我這樣做時,出現了太多錯誤。 所以問題是,下一步是什么? 怎么了
首先,使用游標的最佳實踐是獲取具有列名的游標:
String columnID = "ID";
String id;
id = cursor.getString(cursor.getColumnIndex(columnID));
然后,當您必須使用findViewByID(id)方法獲取listView的ID時。
ListView list = (ListView) findViewByID(R.id.list_id);
填充UserList之后設置適配器很容易:
ArrayAdapter<User> adapter = ArrayAdapter(this, R.layout.user, Users);
list.setAdapter(adapter);
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.