如何使用遊標數據創建一個列表數組(滾動時列表顯示第一個字母)?如何在Android中使用遊標數據創建一個列表
回答
遍歷Cursor
中的每個元素,並將它們逐個添加到ArrayList
。
ArrayList<WhateverTypeYouWant> mArrayList = new ArrayList<WhateverTypeYouWant>();
for(mCursor.moveToFirst(); !mCursor.isAfterLast(); mCursor.moveToNext()) {
// The Cursor is now set to the right position
mArrayList.add(mCursor.getWhateverTypeYouWant(WHATEVER_COLUMN_INDEX_YOU_WANT));
}
(更換WhateverTypeYouWant
與你想的ArrayList
,並WHATEVER_COLUMN_INDEX_YOU_WANT
你想要從遊標來獲取值的列索引任何類型。)
嗨,我想要做的重要事情是在我的列表中顯示「拳頭字符」。從遊標獲取所有數據後,我不知道如何將其轉換爲String []數組以獲取「第一個字符」。它看起來像這樣char firstLetter = mString [firstVisibleItem] .charAt(0); – Dennie 2009-09-01 03:55:56
朋友:上面的for循環並不完全正確(條件和增量anre交換)。使用'for(mCursor.moveToFirst();!mCursor.isAfterLast(); mCursor.moveToNext()){}' – 2012-02-03 09:23:44
這種類型的循環有點難以閱讀。 @PearsonArtPhoto的解決方案更優雅,更易於閱讀。 – WarrenFaith 2014-01-24 16:07:26
一個快速修正:for循環以上跳過光標的第一個元素。 要包括第一元素,使用:
ArrayList<String> mArrayList = new ArrayList<String>();
mCursor.moveToFirst();
while(!mCursor.isAfterLast()) {
mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item
mCursor.moveToNext();
}
非常好點imbrizi。這是一個更好的方式來循環遍歷遊標的元素 – DonnaLea 2011-08-24 06:39:10
如何添加兩個或更多列值? – 2013-10-10 05:14:44
甚至比@ imbrizi的回答最好是這樣的:
ArrayList<String> mArrayList = new ArrayList<String>();
while(mCursor.moveToNext()) {
mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item
}
moveToNext()
將返回false,如果沒有什麼事,所以這減少了SLOC由少數幾個,更容易看到。
更好的辦法是讓列索引在循環之外。
ArrayList<String> mArrayList = new ArrayList<String>();
int columnIndex=mCursor.getColumnIndex(dbAdapter.KEY_NAME)
while(mCursor.moveToNext()) {
mArrayList.add(mCursor.getString(columnIndex)); //add the item
}
這一個工作非常適合我,因爲我想對象的ArrayList:
List<MyObject> myList = new ArrayList<String>();
Cursor c = ...
while(c.moveToNext()) {
myList.add(new MyObject(cursor.getInt(cursor.getColumnIndex("_id")), cursor.getString(cursor.getColumnIndex("column1")), cursor.getInt(cursor.getColumnIndex("column2")));
}
c.close();
只是做一個POJO MyObject
,並確保它有一個構造函數。
- 1. 如何從列表中獲取一些數據並在RxJava中使用該數據創建另一個列表
- 2. 如何從另一個列表中創建數據計算列
- 3. 如何創建一個觸發器,用於在另一個表中插入數據時創建表中的列
- 4. 「如何使用android studio中的遊標從多個表中檢索數據」
- 5. Android-使用遊標從數據庫表中獲取單個值
- 6. Android - 如何使用一個記錄(遊標)來填充ListView中多個列表項的數據?
- 7. 如何在android中創建一個水平的imageview列表?
- 8. 如何使用ID列在SQLite表中創建一個新行?
- 9. 如何在IOS應用創建一個表3列?(目標C)
- 10. 如何在遊戲中使用遊標搜索數據庫(sqlite查詢)android
- 11. 從implode數據創建一個列表
- 12. 在數據庫中創建一個表
- 13. 如何使用列表視圖創建一個多級列表
- 14. 如何從兩個列表創建一個PySpark數據框?
- 15. 如何創建另一個列表中的一個列表?
- 16. 如何在一個數據庫中創建兩個表
- 17. 如何使用數據庫數據在angularjs中創建圖表?
- 18. 如何創建一個listview在android中顯示數據?
- 19. 如何使用SPRING數據在MongoDB中創建一個集合
- 20. 想使用字符串在列表中創建一個列表
- 21. 在一個列表中創建多個數據集
- 22. 從2個不同的列讀取數據並使用該數據在同一個表中創建另一列
- 23. 如何在不從Android應用程序的數據庫獲取數據的情況下創建遊標數據?
- 24. 如何使用同一列表中的數據創建計算列
- 25. 如何從一個數據框創建一個新列,但在現有列的一段數據上使用
- 26. 使用多個表中的數據創建下拉列表
- 27. 如何在Android Studio中使用ListView創建Youtube播放列表
- 28. 如何在Android中使用多列創建表格?
- 29. 如何使用RecyclerView在android中創建列表?
- 30. 如何創建一個使用apply()後創建的pandas數據框的新列?
你想用遊標的數據創建一個'ArrayList'? – 2009-08-31 16:20:33