public class MainActivity extends Activity {private List group;private List> child;private ExpandableListAdapter adapter;private TextView timeView,durView,delView;private ImageView image;private Handler handler;private int cnt=0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);handler = new Handler();group = new ArrayList();child = new ArrayList>();String g[]= { "test1", "test2", "test3","test3","test3" };String c[][] = {{ "aaa" },{ "a","b","c" },{},{ "111","222" ,"333","111","333","111","222" ,"333"},{}};addgroup( g );addchild( c );adapter = new BaseExpandableListAdapter() {@Overridepublic Object getChild(int groupPosition, int childPosition) {return child.get(childPosition);}@Overridepublic long getChildId(int groupPosition, int childPosition) {return childPosition;}@Overridepublic View getChildView(final int groupPosition, final int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {if (null == convertView || !(convertView instanceof RelativeLayout)) {convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, null);if(childPosition == 0){Log.d("tag", "group "+groupPosition+" first click");}}image = (ImageView) convertView.findViewById(R.id.image);timeView = (TextView) convertView.findViewById(R.id.title);durView = (TextView) convertView.findViewById(R.id.info);delView = (TextView) convertView.findViewById(R.id.delete);Log.d("tag", "group="+child.size()+",gp="+groupPosition);Log.d("tag", "child="+child.get(groupPosition).size()+",cp="+childPosition);if((child.size() > groupPosition)&&(child.get(groupPosition).size() > childPosition)){timeView.setText(child.get(groupPosition).get(childPosition).toString());durView.setText("test123456");timeView.setVisibility(View.VISIBLE);durView.setVisibility(View.VISIBLE);delView.setVisibility(View.VISIBLE);image.setVisibility(View.VISIBLE);}else {timeView.setVisibility(View.GONE);durView.setVisibility(View.GONE);delView.setVisibility(View.GONE);image.setVisibility(View.GONE);}convertView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "group:"+groupPosition+",child:"+childPosition, Toast.LENGTH_SHORT).show();}});return convertView;}@Overridepublic int getChildrenCount(int groupPosition) {return child.get(groupPosition).size();}@Overridepublic Object getGroup(int groupPosition) {return group.get(groupPosition);}@Overridepublic int getGroupCount() {return group.size();}@Overridepublic long getGroupId(int groupPosition) {return groupPosition;}@Overridepublic View getGroupView(final int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {LinearLayout ll = new LinearLayout(MainActivity.this);TextView textView = getTextView();textView.setText(getGroup(groupPosition).toString());ll.addView(textView);return ll;}public TextView getTextView() {AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100);TextView textView = new TextView(MainActivity.this);textView.setLayoutParams(lp);textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);textView.setPadding(80, 0, 0, 0);return textView;}@Overridepublic boolean hasStableIds() {return true;}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {return true;}};ExpandableListView expandListView = (ExpandableListView) findViewById(R.id.list);expandListView.setAdapter(adapter);//test();}private void test(){new Timer().schedule(new TimerTask() {public void run() {cnt=cnt++>20?0:cnt;modifyChildVal(1, cnt);modifyGroupVal(0, cnt);Runnable updater = new Runnable() {public void run() {((BaseExpandableListAdapter) adapter).notifyDataSetChanged();}};handler.post(updater);};}, 0, 3000);}public void addgroup(String[] c) {for (int i = 0; i < c.length; i++) {group.add(c[i]);}}public void addchild(String[][] c) {for (int i = 0; i < c.length; i++) {List tmpList = new ArrayList();for (int j = 0; j < c[i].length; j++) {tmpList.add(c[i][j]);}child.add(tmpList);}}public void modifyChildVal(int index, int s) {List tmpList = child.get(index);String tmp = s+"";tmpList.set(0, tmp);child.set(index, tmpList);}public void modifyGroupVal(int index, int s) {String tmp = "abc"+s;group.set(index, tmp);}}

布局:

<?xml version="1.0" encoding="utf-8"?>        
列表项布局:

<?xml version="1.0" encoding="utf-8"?>                                                                                                                                              

效果:



更多相关文章

  1. 实现类似android:clipChildren="false"的效果,在使用android:clip
  2. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切
  3. Android实现带箭头的自定义Progressbar
  4. Android沉浸式效果的实现—Sofia的使用
  5. IOS的专利?Android也能流畅实现毛玻璃效果效果
  6. android UI进阶之android中隐藏的layout 抽屉的运用
  7. android:布局参数,控件属性及各种xml的作用
  8. 自动搜索私密信息与彻底删除APP--(一)清理
  9. Android牛博

随机推荐

  1. Kitkat 的磁盘加密功能分析
  2. android 在线升级借助开源中国App源码
  3. Android的SeekBar和RateBar的使用-androi
  4. android:textAppearance
  5. Android(安卓)Shape 的使用入门
  6. Android(安卓)listview 利用反射的自动绑
  7. android textview 自动链接网址 修改默认
  8. android控制显示和隐藏视图或控件的操作
  9. Android(安卓)Wifi获取组播
  10. Android系统编译系统分析大全(二)