0

Android Studio プロジェクトでcardslibライブラリを使用しています。私はCardListViewに取り組んでいます。BLOB フィールド (画像の保存に使用) を持つ sqlite データベース行から各 CardView 情報を取得しています。この図に示すようにデータベースから CardListView を入力した後、CardThumbnail を除いてすべて問題ないようです。リストのすべての CardView で、最後に反復されたデータベース行のビットマップ フィールドのみが表示されます。

このコードを使用して、すべての sqlite 行を反復処理し、CardListView 項目を埋めています。

    /* Retrieving items from database */
    List<Item> items = dataBase.getAllItemsLOC();
    int itemsLOCCount = items.size();

    /* Iterating retrieved database items */
    for (int i = 0; i < itemsLOCCount; i++) {
        final Item item = items.get(i);

        RentCard card = new RentCard(getActivity());

        /* Add thumbnail */
        CardThumbnail cardThumbnail = new CardThumbnail(getActivity());
        cardThumbnail.setCustomSource(new CardThumbnail.CustomSource() {
            @Override
            public String getTag() {
                return "com.google.android.apps.maps";
            }

            @Override
            public Bitmap getBitmap() {
                Bitmap bitmap = item.getImageBitmap();
                return bitmap;
            }
        });
        card.addCardThumbnail(cardThumbnail);

        card.setDevise(item.getDevise());

        /* ... setting the rest of the CardView properties ... */

        card.setId("" + items.get(i).getId());

        cards.add(card);
    }
    mCardArrayAdapter.notifyDataSetChanged();

問題を特定するのを手伝ってもらえますか?

4

1 に答える 1

0

Rami のおかげで、コードのこの部分を置き換えることで問題を解決しました。

@Override
public String getTag() {
    return "com.google.android.apps.maps";
}

これで :

@Override
public String getTag() {
    return item.getId();
}

これで、私の CardListView は、この図に示すように、各 sqlite 行の各 CardThumbnail Image を正しく表示しています。

于 2015-08-01T22:12:17.660 に答える