【发布时间】:2017-11-21 01:29:07
【问题描述】:
美好的一天!
我想让 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);
}
}
【问题讨论】:
-
请正确澄清您的问题。是否需要在 ExpandableListView 中启用“Multi check”。对吗?
-
是的,这将是对 isItemChecked 的多重验证,但是当它进入 getChildView 时位置不正确,所以如果可能的话,他们无论如何都要获得在 setItemChecked 上设置为 true 的位置?
-
是否有任何特定的 id 与您可以持有的子对象。因此,每当您的项目被选中时,将其标记在地图或集合中,然后在呈现时检查该项目是否被选中。使用这种方法,您可以轻松处理所选项目的逻辑。希望对你有帮助
标签: android expandablelistview expandablelistadapter onlongclicklistener