1
我在ListView
中使用自定義CursorAdapter
(文章)顯示數據。 有些帖子可以有評論(我想要顯示有關信息)和數據是在不同的光標(我不能加入表,因爲我通過郵編ID分組,以防止重複在ListView
)。在CursorAdapter.bindView中循環遊標
當前在bindView
我遍歷評論Cursor
檢查帖子ID是否等於當前視圖。
這個循環可以減慢用戶界面,應該在不同的線程中完成嗎? (這增加了在視圖被回收時在正確位置顯示數據的複雜性)
是否有更好的策略?我想過CursorJoiner
,但我不明白我如何加入這兩個遊標。
編輯:
這是例如在我的CurosrAdapter
實現:
@Override
public void bindView(View view, final Context context, Cursor cursor) {
...
...
if (mCommentsCursor != null) {
mCommentsCursor.moveToPosition(-1);
int count = 0;
while (mCommentsCursor.moveToNext()) {
if (mCommentsCursor.getInt(mCommentsCursor.getColumnIndex(
COLUMN_COMMENT_POST_ID)) == postId) {
count++;
}
}
if (count > 0) {
com.setText(Integer.toString(count) + " comments");
} else {
com.setText(null);
}
}
也許它會是因爲你的帖子很難理解,所以如果你提供的代碼更好。 – mango
用一些代碼編輯了這個問題 –
我想我現在明白了。是的,絕對必須有比這更好的策略。你應該在這裏設置一個只需要一個遊標的目標。現在你在重載時爲列表視圖的每一行運行循環。如果你所需要的只是評論的數量,你難道不能在主表中爲它添加一列嗎?然後制定一個方法來維護這個?我會想象它看起來很像你有什麼 – mango