我从Cursor获取String数据,但我不知道如何将其转换为Array。我怎么能这样做?
String[] mString;
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) {
mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW));
}
mString = mTitleRaw ????
答案 0 :(得分:4)
你可以将mTitleRaw包装成单个元素数组,如下所示:
mString = new String[] { mTitleRaw };
更新: 您可能想要的是将所有行添加到单个数组中,您可以使用ArrayList执行此操作,并将其变回String []数组,如下所示:
ArrayList strings = new ArrayList();
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
String mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW));
strings.add(mTitleRaw);
}
Sting[] mString = (String[]) strings.toArray(new String[strings.size()]);
答案 1 :(得分:1)
Pentium10指出marshall_law的代码中有一个错误。它会跳过游标中的第一个元素。这是一个更好的解决方案:
ArrayList al = new ArrayList();
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
Log.d("", "" + cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_PROFILE_NAME)));
String mTitleRaw = cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_ID));
al.add(mTitleRaw);
cursor.moveToNext();
}
正如我所说,这段代码将包含光标中的第一个元素。