【问题标题】:CardListView gets the same image in all its CardViews after iterating sqlite rowsCardListView 在迭代 sqlite 行后在其所有 CardViews 中获取相同的图像
【发布时间】:2015-10-24 02:43:21
【问题描述】:

我在我的 Android Studio 项目中使用 cardslib 库。我正在研究 CardListView。我正在从具有 BLOB 字段(用于存储图像)的 sqlite 数据库行中检索每个 CardView 信息。如this picture 所示,从数据库中填充 CardListView 后,除了 CardThumbnail 之外,一切似乎都很好。它只显示列表的每个 CardView 中最后一次迭代的数据库行 Bitmap 字段。

我正在使用此代码迭代每个 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();

您能帮我找出问题吗?

【问题讨论】:

  • 尝试为每个cardThumbnail使用一个唯一的标签(getTag()的返回值)。
  • 非常感谢拉米,你成就了我的一天。

标签: android sqlite bitmap blob cardslib


【解决方案1】:

感谢 Rami,我通过替换这部分代码解决了我的问题:

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

通过这个:

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

现在,我的 CardListView 可以正确显示每个 sqlite 行中的每个 CardThumbnail 图像,如 this picture 所示。

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 2014-07-07
    • 2018-10-09
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多