BaseMultiItemQuickAdapter 条目position获取

使用 BaseRecyclerViewAdapterHelper 框架,在使用多类型条目或者伸展类型时候发现一个问题

BaseMultiItemQuickAdapter 条目position获取_第1张图片BaseMultiItemQuickAdapter 条目position获取_第2张图片

上面左右两个图分别是 次级列表关闭展开转态下 点击level 0 第二个条目时 获得的position

 int pos = holder.getAdapterPosition();
 Log.d(TAG, "Level 0 item pos: " + pos);
 Toast.makeText(mContext, "Level 0 item pos: " + pos, Toast.LENGTH_SHORT).show();

因为我的需求是 先获取level 0的数据 再去分别获取次级item 的数据,所以在展开状态下 无法获取到正确的data ,有时候还会造成数据越界。

去githup 查找 issue

BaseMultiItemQuickAdapter 条目position获取_第3张图片

看到这里给了自己一个思路

public class Level1Item extends AbstractExpandableItem implements MultiItemEntity {
    public String title;
    public String subTitle;
    public int ItemPos;
    public Level1Item(String title, String subTitle,int ItemPos) {
        this.subTitle = subTitle;
        this.title = title;
        this.ItemPos = ItemPos;
    }

    public int getItemPos() {
        return ItemPos;
    }

    public void setItemPos(int itemPos) {
        ItemPos = itemPos;
    }

    @Override
    public int getItemType() {
        return SelectClientAdapter.TYPE_LEVEL_1;
    }

    @Override
    public int getLevel() {
        return 1;
    }
}

在level 0 的数据里绑定他的position 

在item的点击事件中取出数据时,

Level1Item l1 = (Level1Item) sectionAdapter.getItem(position);
int pos = l1.getItemPos();

第一个postion 就是 点击时候获取的 第二个时在数据源 中的位置

问题记录一下

你可能感兴趣的:(日常错误,Android,基础,Java高级)