【发布时间】:2016-10-06 07:42:49
【问题描述】:
我有一个 SQLite 数据库。
这是一些设置它的代码:
// Field Names:
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_DESCRIPTION = "description";
public static final String[] ALL_KEYS = new String[] {KEY_ROWID, KEY_NAME, KEY_DESCRIPTION};
// Column Numbers for each Field Name:
public static final int COL_ROWID = 0;
public static final int COL_NAME = 1;
public static final int COL_DESCRIPTION = 2;
// DataBase info:
public static final String DATABASE_NAME = "dbMetrics";
public static final String DATABASE_TABLE = "mainMetrics";
public static final int DATABASE_VERSION = 1;
//SQL statement to create database
private static final String DATABASE_CREATE_SQL =
"CREATE TABLE " + DATABASE_TABLE
+ " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NAME + " TEXT NOT NULL, "
+ KEY_DESCRIPTION + " TEXT"
+ ");";
我想将我的一列 KEY_NAME 输出为 ArrayList。
为此,到目前为止,我已经生成了以下代码:
public ArrayList<String> getAllStringValues() {
ArrayList<String> myStringValues = new ArrayList<String>();
Cursor result = db.query(true, DATABASE_TABLE,
new String[] {KEY_NAME}, null, null, null, null,
null, null);
**********CODE NEEDED HERE***********
System.out.println(Arrays.toString(myStringValues.toArray()));
return myStringValues ;
}
但是,我不确定如何从此处将列中的数据获取到 ArrayList 中。
我的问题
有人可以帮我设计一个循环,遍历列中的每一行并将数据放入 ArrayList 中吗?
我很确定我需要在某个时候使用
result.getString(result.getColumnIndex(KEY_NAME))
为了做到这一点,但同样,我不确定如何。
任何帮助将不胜感激。
【问题讨论】:
-
阅读 Cursor 类的文档?有一些方法可以用来迭代它
-
从这个开始,然后学习如何从光标中提取数据。 stackoverflow.com/questions/10723770/…
-
问题是,这里提供的答案似乎只打印了唯一值。例如,我希望我的输出打印
[Test,Test2,Test2,Test],但它会删除重复项并打印[Test,Test2]。如何避免这种情况?我希望它打印所有内容,而不仅仅是不同的内容。
标签: java android sqlite arraylist