我正在使用代码this blog有一个可拖动的列表。本教程使用自定义 DragNDropAdapter 它将内容作为 ArrayList。
在我的 listActivity 中,我查询一个包含返回列 name
的表。它插入了 11 个值。
我尝试使用多种方法将其从 String[] 转换为 ArrayList,例如:
String[] from = new String[]{DbManager.KEY_NAME};
ArrayList<String> content = new ArrayList<String>();
for (int i=-1,l=from.length; ++i<l;) {
content.add(from[i]);
//Log.i("ArrayList", from[i]);
}
或
while(!mShopCatCursor.isAfterLast()){
content.add(mShopCatCursor.getString(0));
}
我得到的是一个仅包含列名称的列表,name
。
你有什么想法吗
最佳答案
您可以使用以下方法,该方法将从数据库获取数据,然后返回该数据的 String 的 ArrayList
。在您的情况下,此数组列表将包含名称。
private ArrayList<String> getArrayList() {
ArrayList<String> namesList = null;
Cursor cursor = null;
try {
String query = "";//your query here
cursor = db.rawQuery(query,null);
if (cursor != null && cursor.moveToFirst()) {
namesList = new ArrayList<String>();
do {
namesList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
} catch (Exception e) {
e.printStackTrace();
namesList = null;
} finally {
if (cursor != null && !cursor.isClosed()) {
cursor.deactivate();
cursor.close();
cursor = null;
}
close();
}
return namesList;
}
/**
* Closes the database
*/
private void close() {
try {
if (db != null && db.isOpen()) {
DBHelper.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
关于java - 将 sqlite 中的数据放入 ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052987/