美好的一天!
我想在 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);
}
}
答案 0 :(得分:0)
我能够解决我的问题,为了获得 getChildView 中的原始位置,首先获取packPosition,它是可扩展列表视图的原始位置,然后将其用于 getFlatListPosition 请参阅下面的我的代码段
long packPosition = ExpandableListView.getPackedPositionForChild(groupPosition, childPosition);
int rawPosition = mExpandableListView.getFlatListPosition(packPosition);
我希望它会帮助你们!