0

我正在使用BaseExpandableListAdapter并且不能真正理解为什么getChildId(int groupPosition, int childPosition)当我单击该组位置中存在的唯一子项时该方法循环三次?

我希望在单击子项时发生一些事情,但问题是程序执行了三次,尽管我只有一个孩子。

通过 System.out.println("")` 可以看到该字符串打印了 3 次。为什么?

也许我错过了一些重要的事情?我应该使用另一种方法来举例吗?

真诚的比约恩

    public long getChildId(int groupPosition, int childPosition) {
          System.out.println("childPosition: " + childPosition + " groupPosition: " + groupPosition);

          switch (childPosition) {
            case 0:
                // Do something
                break;
            case 1: 
                // Do something
                break;
          }

    return 0;
}
4

1 回答 1

1

enter code here你不应该做任何事情,getChildId你应该只返回 id。你应该做任何事情ExpandableListActivity.onChildClick等等。

也就是说,getChildId 不应该改变程序的状态。因为它可以被Android框架任意调用。

只需返回类似groupPosition*100 + childPosition. 然后在ExpandableListActivity.onChildClick等你可以通过相同的公式计算出id。

于 2013-05-17T11:34:25.547 回答