簡體   English   中英

如何在列表視圖中設置arrayadapter的視圖

[英]How to set the view of arrayadapter in listview

我正在嘗試執行以下操作:

  1. sqlite database讀取數據
  2. 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;

}

然后,我在擴展ActicityMainActivity.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM