ID #59402

Android ExpandableListActivity 使用

    1. 规划数据结构用于存放 Group 及其 子数据 Child

Java代码
  1. //存放 Groop 数据   
  2. public List group;   
  3.   
  4. //存放 Child 数据 以其所属于的Group细分   
  5. public List> child;   
  6.      
  7. //存放 Groop 数据   
  8. public List group;   
  9.   
  10. //存放 Child 数据 以其所属于的Group细分   
  11. public List> child;  

     2. 定义 class ExpandInfoAdapter extends BaseExpandableListAdapter

Java代码
  1. public class ExpandInfoAdapter extends BaseExpandableListAdapter {   
  2.   
  3. @Override  
  4. public Object getChild(int arg0, int arg1) {   
  5.   
  6. // TODO Auto-generated method stub   
  7.   
  8. return null;   
  9.   
  10. }   
  11.   
  12. @Override  
  13. public  long getChildId(int arg0, int arg1) {   
  14.   
  15. // TODO Auto-generated method stub   
  16.   
  17. return 0;   
  18.   
  19. }   
  20.   
  21. @Override  
  22. public View getChildView(int arg0, int arg1, boolean arg2, View arg3,ViewGroup arg4) {   
  23.   
  24. // TODO Auto-generated method stub   
  25.   
  26. return null;   
  27.   
  28. }   
  29.   
  30. @Override  
  31. public int getChildrenCount(int arg0) {   
  32.   
  33. // TODO Auto-generated method stub   
  34.   
  35. return 0;   
  36.   
  37. }   
  38.   
  39. @Override  
  40. public Object getGroup(int arg0) {   
  41.   
  42. // TODO Auto-generated method stub   
  43.   
  44. return null;   
  45.   
  46. }   
  47.   
  48. @Override  
  49. public int getGroupCount() {   
  50.   
  51. // TODO Auto-generated method stub   
  52.   
  53. return 0;   
  54.   
  55. }   
  56.   
  57. @Override  
  58. public long getGroupId(int arg0) {   
  59.   
  60. // TODO Auto-generated method stub   
  61.   
  62. return 0;   
  63.   
  64. }   
  65.   
  66. @Override  
  67. public View getGroupView(int groupPosition, boolean isExpanded,   
  68.   
  69.   
  70. View convertView, ViewGroup parent) {   
  71.   
  72. // TODO Auto-generated method stub   
  73.   
  74. return null;   
  75.   
  76. }   
  77.   
  78. @Override  
  79. public boolean hasStableIds() {   
  80.   
  81. // TODO Auto-generated method stub   
  82.   
  83. return false;   
  84.   
  85. }   
  86.   
  87. @Override  
  88. public boolean isChildSelectable(int groupPosition, int childPosition) {   
  89.   
  90. // TODO Auto-generated method stub   
  91.   
  92. return false;   
  93.   
  94. }   
  95.   
  96. }   
  97.   
  98.    

       3. 填充ExpandInfoAdapter 的函数

Java代码
  1. @Override  
  2. public Object getChild(int arg0, int arg1) {   
  3.   
  4. // TODO Auto-generated method stub   
  5.   
  6. return child.get(arg0).get(arg1);   
  7.   
  8. }   
  9.   
  10. @Override  
  11. public long getChildId(int arg0, int arg1) {   
  12.   
  13. // TODO Auto-generated method stub   
  14.   
  15. return arg1;   
  16.   
  17. }   
  18.   
  19. @Override  
  20. public int getChildrenCount(int arg0) {   
  21.   
  22.   
  23. // TODO Auto-generated method stub   
  24.   
  25. return child.get(arg0).size();   
  26.   
  27. }   
  28.   
  29. @Override  
  30. public View getChildView(int arg0, int arg1, boolean arg2, View arg3,ViewGroup arg4) {   
  31.   
  32. // TODO Auto-generated method stub   
  33.   
  34. return getChildViewStub(child.get(arg0).get(arg1).toString());   
  35.   
  36. }   
  37.   
  38. public TextView getChildViewStub(String s) {   
  39.   
  40. // Layout parameters for the ExpandableListView   
  41.   
  42. AbsListView.LayoutParams lp = new AbsListView.LayoutParams(   
  43.   
  44. ViewGroup.LayoutParams.FILL_PARENT, 64);   
  45.   
  46.   
  47. TextView text = new TextView(activity);   
  48.   
  49. text.setLayoutParams(lp);   
  50.   
  51. text.setTextSize( 20);   
  52.   
  53. text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);   
  54.   
  55. text.setPadding(36000);   
  56.   
  57. text.setText(s);   
  58.   
  59. return text;   
  60.   
  61. }