私と同じ問題に遭遇した人のために、ここに残します:
を設定しようとしていてOnItemLongClickListener
、ExpandableListView
クリックされたグループを知りたいと思っていました。SO に関する多くの質問 (たとえば、この質問) のアドバイスに従って、私は を使用してExpandableListView.getPackedPositionGroup
いましたが、常に が返され0
ました。
使用したコードは次のとおりです。
@Override
public boolean onItemLongClick(AdapterView<?> list, View view, int position, long id) {
Log.d(D, "position: "+position);
Log.d(D, "id: "+position);
Log.d(D, "unpacked position: "+ExpandableListView.getPackedPositionGroup(position));
switch(ExpandableListView.getPackedPositionType(position)) {
case ExpandableListView.PACKED_POSITION_TYPE_CHILD:
Log.d(D, "position type: child");
break;
case ExpandableListView.PACKED_POSITION_TYPE_GROUP:
Log.d(D, "position type: group");
break;
case ExpandableListView.PACKED_POSITION_TYPE_NULL:
Log.d(D, "position type: null");
break;
default:
Log.wtf(D, "position type: "+ExpandableListView.getPackedPositionType(position));
}
return true;
}
私が見つけたのは、位置と id が常に同じ (正しい) 値を持っていることです。ただし、型は常にグループとして認識され、展開された位置は常に 0 でした。
では、そのコードの何が問題なのですか?