2013-05-17 52 views
0

我與BaseExpandableListAdapter工作並不能真正undertstand爲什麼getChildId(int groupPosition, int childPosition)循環三次,當我點擊存在於該groupposition一個和唯一的孩子的方法是什麼?爲什麼在BaseExpandableListAdapter getChildId法循環三次

我想要點擊childitem時發生的事情,但問題是程序執行了三次,儘管我只有一個孩子。

通過System.out.println(「」)`可以看到字符串打印了3次。爲什麼?

也許我錯過了一些至關重要的東西?我應該使用另一種方法進行實驗嗎?

Cincerely比約恩

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; 
} 

回答

0

enter code here你不應該做任何事情在getChildId你應該只返回ID。你應該盡一切辦法在ExpandableListActivity.onChildClick等等。

也就是說,getChildId不應該改變你的程序的狀態。因爲它可以通過Android框架任意調用。

只需返回類似groupPosition*100 + childPosition。然後在ExpandableListActivity.onChildClick等,你可以通過相同的公式找出id。

+0

很多感謝! :-) setOnChildClickListener(new ExpandableListView.OnChildClickListener() –