可展开的列表视图onItemLongClick和getChildView

时间:2017-11-21 01:29:08

标签: android expandablelistview expandablelistadapter onlongclicklistener

美好的一天!

我想在 getChildView 上设置 setItemChecked 以使我在 onItemLongClick 中使用的原始位置应该用于此有一个正确的位置,可以在这个声明 mExpandableListView.isItemChecked(childPosition) 中使用,或者是否有任何方法可以用来拥有正确的位置。 注意:我已经使用了 int childPosition = ExpandableListView.getPackedPositionChild(id); ,在 getChildView

中使用时位置不正确
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    // validate if item selected is a child not the groupview
    if (!mIsMultiSelection) {
        mIsMultiSelection = true;
        int childPosition = ExpandableListView.getPackedPositionChild(id);
        mExpandableListView.setItemChecked(position , true);
    }
    return true;
}

@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
if (mExpandableListView.isItemChecked(childPosition)) {
        Log.e("test2"," " + childPosition);
    }

}

1 个答案:

答案 0 :(得分:0)

我能够解决我的问题,为了获得 getChildView 中的原始位置,首先获取packPosition,它是可扩展列表视图的原始位置,然后将其用于 getFlatListPosition 请参阅下面的我的代码段

long packPosition = ExpandableListView.getPackedPositionForChild(groupPosition, childPosition);
    int rawPosition = mExpandableListView.getFlatListPosition(packPosition);

我希望它会帮助你们!