android中ExpandableListView点击哪一条那一条显示,而其他条隐藏的实现办法

转载!!!
1
直接上代码 2 3 [java] 4 public class MyActivity extends Activity implements HandleClick{ 5 6 7 private ExpandableListView listView; 8 9 private int lastClick = -1;//上一次点击的group的position 10 11 public void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.main); 14 15 listView = (ExpandableListView)findViewById(R.id.listView); 16 //去掉前面的箭头图标 17 listView.setGroupIndicator(null); 18 19 MyExpandAdapter adapter = new MyExpandAdapter(this); 20 adapter.setHnadleClick(this); 21 listView.setAdapter(adapter); 22 23 24 listView.setOnGroupClickListener(new OnGroupClickListener() { 25 public boolean onGroupClick(ExpandableListView parent, View v, 26 int groupPosition, long id) { 27 28 if(lastClick == -1) 29 { 30 listView.expandGroup(groupPosition); 31 } 32 33 if(lastClick != -1 && lastClick != groupPosition) 34 { 35 listView.collapseGroup(lastClick); 36 listView.expandGroup(groupPosition); 37 } 38 else if(lastClick == groupPosition) 39 { 40 if(listView.isGroupExpanded(groupPosition)) 41 listView.collapseGroup(groupPosition); 42 else if(!listView.isGroupExpanded(groupPosition)) 43 listView.expandGroup(groupPosition); 44 } 45 46 lastClick = groupPosition; 47 return true; 48 } 49 }); 50 } 51 52 53 public void handleClick(int type) { 54 55 Toast.makeText(MyActivity.this, "...点了一下...", Toast.LENGTH_SHORT).show(); 56 } 57 } 58 59 适配器: 60 [java] 61 public class MyExpandAdapter extends BaseExpandableListAdapter{ 62 63 private Context context; 64 private String[] roomName = new String[]{"房间1","房间2","房间3","房间4","房间5"}; 65 private String[] peoNum = new String[]{"1323人","6654人","86554人","6565人","7967人"}; 66 private String[] startTime = new String[]{"马上开始","1分钟","2分钟","3分钟","4分钟"}; 67 68 private HandleClick handleClick; 69 70 public interface HandleClick 71 { 72 public void handleClick(int type); 73 } 74 75 public void setHnadleClick(HandleClick hc) 76 { 77 this.handleClick = hc; 78 } 79 80 public MyExpandAdapter(Context context) 81 { 82 this.context = context; 83 } 84 85 public boolean isChildSelectable(int groupPosition, int childPosition) { 86 // TODO Auto-generated method stub 87 return false; 88 } 89 90 @Override 91 public boolean hasStableIds() { 92 // TODO Auto-generated method stub 93 return false; 94 } 95 96 @Override 97 public View getGroupView(int groupPosition, boolean isExpanded, 98 View convertView, ViewGroup parent) { 99 100 convertView = (RelativeLayout)RelativeLayout.inflate(context, R.layout.group, null); 101 TextView tv_roomName = (TextView)convertView.findViewById(R.id.tv_roomName); 102 TextView tv_time = (TextView)convertView.findViewById(R.id.tv_time); 103 TextView tv_peoNum = (TextView)convertView.findViewById(R.id.tv_peoNum); 104 105 tv_roomName.setText(roomName[groupPosition]); 106 tv_time.setText(peoNum[groupPosition]); 107 tv_peoNum.setText(startTime[groupPosition]); 108 109 return convertView; 110 } 111 112 @Override 113 public long getGroupId(int groupPosition) { 114 // TODO Auto-generated method stub 115 return 0; 116 } 117 118 @Override 119 public int getGroupCount() { 120 // TODO Auto-generated method stub 121 return roomName.length; 122 } 123 124 @Override 125 public Object getGroup(int groupPosition) { 126 // TODO Auto-generated method stub 127 return null; 128 } 129 130 @Override 131 public int getChildrenCount(int groupPosition) { 132 // TODO Auto-generated method stub 133 return 1; 134 } 135 136 @Override 137 public View getChildView(int groupPosition, int childPosition, 138 boolean isLastChild, View convertView, ViewGroup parent) { 139 140 convertView = (LinearLayout)LinearLayout.inflate(context, R.layout.child, null); 141 142 TextView child_startTime = (TextView)convertView.findViewById(R.id.child_startTime); 143 TextView child_peoNum = (TextView)convertView.findViewById(R.id.child_peoNum); 144 Button child_button = (Button)convertView.findViewById(R.id.child_button); 145 146 child_startTime.setText(startTime[groupPosition]); 147 child_peoNum.setText(peoNum[groupPosition]); 148 child_button.setOnClickListener(new OnClickListener() { 149 public void onClick(View v) { 150 151 handleClick.handleClick(1); 152 } 153 }); 154 155 return convertView; 156 } 157 158 public long getChildId(int groupPosition, int childPosition) { 159 // TODO Auto-generated method stub 160 return 0; 161 } 162 163 @Override 164 public Object getChild(int groupPosition, int childPosition) { 165 // TODO Auto-generated method stub 166 return null; 167 } 168 169 }

转载于:https://www.cnblogs.com/henryxu/archive/2013/03/28/2987536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值