【发布时间】:2016-06-28 11:24:28
【问题描述】:
我正在为我的案例研究开发一个简单的社交媒体。我能够从用户关注的人那里检索到帖子。截图如下:
如您所见,问题在于帖子未根据日期/ID 排序。相反,它是根据用户关注的人进行排序的。这是因为我只使用mergecursor 合并游标。这是我的代码的一部分:
ListView listviewFeed = (ListView) findViewById(R.id.listviewFeed);
Cursor cursorFeed = DataAdapters.getFeed(dbHelper, strUserID);
//This code is for retrieving user's own posts
Cursor cursorFollowing = DataAdapters.getFollowing(dbHelper,strUserID);
//This code is for retrieving the followed users.
if(cursorFollowing.getCount()>0) {
for (int intCtr = 0; intCtr < cursorFollowing.getCount(); intCtr++) {
int intUseridI = cursorFollowing.getColumnIndex(Tables.FollowTable.COLUMN_USERID);
String strUseridI = cursorFollowing.getString(intUseridI);
Cursor cursorFollowingFeed = DataAdapters.getFeed(dbHelper, strUseridI);
\\This code is for retrieving the posts of the people the user follows.
if(intCtr>0)
{
mergeCursor = new MergeCursor(new Cursor[]{mergeCursor, cursorFollowingFeed});
}else {
mergeCursor = new MergeCursor(new Cursor[]{cursorFeed, cursorFollowingFeed});
}
//This code is for merging the cursors.
if (intCtr + 1 == cursorFollowing.getCount()) {
cursorFollowing.close();
} else {
cursorFollowing.moveToNext();
}
}
ListViewAdapterMeasurement adapterMeasurement = new ListViewAdapterMeasurement(this, mergeCursor);
listviewFeed.setAdapter(adapterMeasurement);
}else
{
ListViewAdapterMeasurement adapterMeasurement = new ListViewAdapterMeasurement(this, cursorFeed);
listviewFeed.setAdapter(adapterMeasurement);
}
一切正常。我只想按日期或 ID 对帖子进行排序。
有没有办法对 MergeCursor 进行排序?
【问题讨论】:
-
不要使用 MergeCursor ... 添加
getAllFollowingFeeds并在那里使用 INNER JOIN -
谢谢你的回答 :) 我已经设法解决了我的问题,你给了我一个改变我的查询的想法 :) @Selvin
标签: java android sqlite android-studio cursor