2012-11-29 64 views
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); 
    } 
} 
+1

也許它會是因爲你的帖子很難理解,所以如果你提供的代碼更好。 – mango

+0

用一些代碼編輯了這個問題 –

+0

我想我現在明白了。是的,絕對必須有比這更好的策略。你應該在這裏設置一個只需要一個遊標的目標。現在你在重載時爲列表視圖的每一行運行循環。如果你所需要的只是評論的數量,你難道不能在主表中爲它添加一列嗎?然後制定一個方法來維護這個?我會想象它看起來很像你有什麼 – mango

回答