[英]Android SQL only returns one column
我得到了一个包含以下布局的SQL数据库:
该表称为messages
,大约有5列。
我创建了一个游标,它应该使用以下命令从两列中获取所有值:
public List<String> getContacts(SQLiteDatabase db) {
List<String> List = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT `from`,`to` FROM messages";
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
List.add(cursor.getString(1));
} while (cursor.moveToNext());
}
return List;
}
在这里,我将值添加到ListView中:
DatabaseHelper dbHelper = new DatabaseHelper(
this.getApplicationContext());
newDB = dbHelper.getWritableDatabase();
List<String> all = dbHelper.getContacts(newDB);
if (all.size() > 0) // check if list contains items.
{
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, all));
} else {
Toast.makeText(ConversationsList.this, "No items to display", 1000)
.show();
}
是的,值被添加了,但是只有me
很奇怪。 我究竟做错了什么?
编辑:通过更改此解决:
if (cursor.moveToFirst()) {
do {
List.add(cursor.getString(0));
List.add(cursor.getString(1));
} while (cursor.moveToNext());
}
至:
if (cursor.moveToFirst()) {
do {
List.add(cursor.getString(0));
List.add(cursor.getString(1));
} while (cursor.moveToNext());
}
您的List<String> List
和
do {
List.add(cursor.getString(1));
} while (cursor.moveToNext());
造成了问题。
如果您无法更改列表类型,
do {
List.add(
cursor.getString(1) +","
cursor.getString(1) +","
...
+cursor.getString(n));
} while (cursor.moveToNext());
会将每个记录的逗号分隔值提取到String中。 您可以分割字符串并单独使用值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.