0

我扩展了 CursorAdapter 并将其与 ListView 相关联。我有两种不同的行布局,并实现了getViewTypeCount、和。数据来自一个 SQL 表,其中每一行都有一个布局列,该列指示该项目应具有的布局类型。getItemViewTypenewViewbindView

我的getViewTypeCount样子是这样的:

@Override
public int getItemViewType(int position) {
int layout = mCursor.getInt(mLayoutIndex);

if (layout == DataHelper.LIST_LAYOUT_ADD_PROJECT)
    return 0;
else
    return 1;   
}

但这似乎搞砸了视图的回收。

如何实现?或者这是一种不好的实现方式?

4

1 回答 1

0

首先,您不应该将布局整数 ID 存储在持久存储中,这些 ID 可以(并且将会)根据事物的顺序和名称随着以后的编译而改变,所以它很可能会在以后咬你。这实际上可能是您麻烦的根源。

我看到的另一件事是您没有使用position提供给您的参数,那么您怎么知道其中的数据mCursor对应于当前正在查询的位置?

于 2011-08-03T19:53:21.437 回答