我在下面有一个sql方法,它应该返回多行数据,但是每次我试图显示数据时它只返回一项。
我该怎么修?
//Constant
public static final String COL_4 = "LikeSong";
//Database Table
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE UserInfo(ID INTEGER PRIMARY KEY AUTOINCREMENT, Users_Name TEXT, PlaylistName TEXT,likeAlbum TEXT,LikeSong TEXT)");
}
public String[] getLikedSongs() {
SQLiteDatabase db = this.getReadableDatabase();
String[] LikeSong = null;
Cursor cursor = db.rawQuery(" SELECT " + COL_4 + " FROM " + Table_Name + " WHERE " + COL_4 + " IS NOT NULL", null);
while (cursor.moveToNext()) {
String note = cursor.getString(0);
LikeSong = note.split(",");
}
cursor.close();
db.close();
return LikeSong;
}
2条答案
按热度按时间xriantvc1#
内部
while
在每次迭代中循环您更改的值LikeSong
,所以当循环结束时,LikeSong
已为其指定最后一个值。我认为您需要方法返回的数组列表
getLikedSongs()
这样地:rpppsulh2#
好吧…现在我明白了。你在重新分配任务
LikeSong
对于while循环的每次迭代,并在while循环完成后返回字符串数组。所以很明显,你只会得到最后一行的值。