布局文件:

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

主程序代码:

package com.toby.personal.testlistview;import android.app.Activity;import android.database.DataSetObserver;import android.os.Bundle;import android.util.TypedValue;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.ExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ExpandableListAdapter adapter = new ExpandableListAdapter() {            private final int[] types = new int[]{                    R.drawable.img01, R.drawable.dog_001, R.drawable.girl01            };            private final String[] typeNames = new String[]{                    "img", "dog", "girl"            };            private final String[][] items = new String[][]{                    {"img01", "img02", "img03", "img04", "img05", "img06", "img07", "img08"},                    {"dog01", "dog02", "dog03", "dog04", "dog05"},                    {"girl01", "girl02", "girl03", "girl04", "girl05"}            };            private TextView getTextView() {                AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200);                TextView textView = new TextView(MainActivity.this);                textView.setLayoutParams(lp);                textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);                textView.setPadding(36, 0, 0, 0);                textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);                return textView;            }            @Override            public void registerDataSetObserver(DataSetObserver dataSetObserver) {            }            @Override            public void unregisterDataSetObserver(DataSetObserver dataSetObserver) {            }            @Override            public int getGroupCount() {                return typeNames.length;            }            @Override            public int getChildrenCount(int groupPos) {                return items[groupPos].length;            }            @Override            public Object getGroup(int groupPos) {                return typeNames[groupPos];            }            @Override            public Object getChild(int groupPos, int childPos) {                return items[groupPos][childPos];            }            @Override            public long getGroupId(int groupPos) {                return groupPos;            }            @Override            public long getChildId(int groupPos, int childPos) {                return childPos;            }            @Override            public boolean hasStableIds() {                return true;            }            @Override            public View getGroupView(int groupPos, boolean isExpanded, View convertView,                                     ViewGroup parent) {                LinearLayout ll = new LinearLayout(MainActivity.this);                ll.setOrientation(LinearLayout.HORIZONTAL);                ImageView type = new ImageView(MainActivity.this);                type.setScaleType(ImageView.ScaleType.FIT_XY);                type.setLayoutParams(new LinearLayout.LayoutParams(300, 300));                type.setImageResource(types[groupPos]);                ll.addView(type);                TextView textView = getTextView();                textView.setText(getGroup(groupPos).toString());                ll.addView(textView);                return ll;            }            @Override            public View getChildView(int groupPos, int childPos, boolean isLastChild,                                     View convertView, ViewGroup parent) {                TextView textView = getTextView();                textView.setText(getChild(groupPos, childPos).toString());                return textView;            }            @Override            public boolean isChildSelectable(int groupPos, int childPos) {                return true;            }            @Override            public boolean areAllItemsEnabled() {                return false;            }            @Override            public boolean isEmpty() {                return false;            }            @Override            public void onGroupExpanded(int i) {            }            @Override            public void onGroupCollapsed(int i) {            }            @Override            public long getCombinedChildId(long l, long l1) {                return 0;            }            @Override            public long getCombinedGroupId(long l) {                return 0;            }        };        ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.listView);        expandableListView.setAdapter(adapter);    }}

运行效果图:

ExpandableListView 使用示例

参考文献:《疯狂Android讲义(第2版)》

更多相关文章

  1. Android(安卓)NumberPicker 使用示例
  2. android Notification 状态栏通知使用示例
  3. 防sql注入
  4. android ui 更新 示例
  5. 【黑马Android】(13)Linux操作系统/cron计划任务
  6. ContentProvider使用示例
  7. Cygwin环境下使用Android(安卓)NDK r9c编译boost 1.55
  8. Android(安卓)ApiDemos示例解析(101):Views->Auto Complete->3.
  9. Android(安卓)ApiDemos示例解析(49):Content->Resources->Styled

随机推荐

  1. 浅谈Android下的Wifi&&安卓WIFI 移植
  2. Android(安卓)短信解析
  3. 【移动生活】Google项目副总裁安迪・鲁宾
  4. Android系列之广播
  5. Android模块开发框架 LiveData+ViewModel
  6. Android系统中的输入输出设备
  7. 转android123 预防Android内存泄露
  8. android 屏幕适配的总结,适合面试
  9. android 线程间的通信
  10. Android入门教程2【开发环境搭建】