09 ExpanableListView 的代码例子

来源:互联网 发布:章淘客cms 编辑:程序博客网 时间:2024/06/05 20:35
<span style="font-size:18px;">package com.qf.day09_expandablelistview03;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ExpandableListView.OnChildClickListener;import android.widget.ExpandableListView.OnGroupClickListener;import android.widget.ExpandableListView.OnGroupCollapseListener;import android.widget.ExpandableListView.OnGroupExpandListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {        private ExpandableListView expandableListView;        private String[] groupData = {"朋友","同学","同事"};        private String[][] childData ={{"马云","王健林","马化腾"},{"老马","老王","小马"},{"许中","光头","翠"}};        private MyAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                expandableListView = (ExpandableListView) findViewById(R.id.expandableListView);                    adapter = new MyAdapter();            expandableListView.setAdapter(adapter);                //分组的点击事件        expandableListView.setOnGroupClickListener(new OnGroupClickListener() {                        @Override            public boolean onGroupClick(ExpandableListView parent, View v,                    int groupPosition, long id) {                                Toast.makeText(MainActivity.this, "==onGroupClick==", Toast.LENGTH_SHORT).show();                                return false;            }        });                //子元素的点击事件        expandableListView.setOnChildClickListener(new OnChildClickListener() {                        @Override            public boolean onChildClick(ExpandableListView parent, View v,                    int groupPosition, int childPosition, long id) {                // TODO Auto-generated method stub                Toast.makeText(MainActivity.this, "==onChildClick=="+childData[groupPosition][childPosition], Toast.LENGTH_SHORT).show();                return false;            }        });                //分组展开的监听        expandableListView.setOnGroupExpandListener(new OnGroupExpandListener() {                        @Override            public void onGroupExpand(int groupPosition) {                // TODO Auto-generated method stub                Toast.makeText(MainActivity.this, "==onGroupExpand==", Toast.LENGTH_SHORT).show();            }        });        //分组折叠的监听        expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {                        @Override            public void onGroupCollapse(int groupPosition) {                // TODO Auto-generated method stub                Toast.makeText(MainActivity.this, "==onGroupCollapse==", Toast.LENGTH_SHORT).show();            }        });                    }            public class MyAdapter extends BaseExpandableListAdapter{        /**         * 获取分组的个数         */        @Override        public int getGroupCount() {            // TODO Auto-generated method stub            return groupData.length;        }        /**         * 获取当前下标分组里的子元素的个数         */        @Override        public int getChildrenCount(int groupPosition) {            // TODO Auto-generated method stub            return childData[groupPosition].length;        }        /**         * 获取当前下标分组的数据         */        @Override        public Object getGroup(int groupPosition) {            // TODO Auto-generated method stub            return groupData[groupPosition];        }        /**         * 获取分组下标为groupPosition里子元素的下标为childPosition的数据         */        @Override        public Object getChild(int groupPosition, int childPosition) {            // TODO Auto-generated method stub            return childData[groupPosition][childPosition];        }        /**         * 获取下标为groupPosition分组的id         */        @Override        public long getGroupId(int groupPosition) {            // TODO Auto-generated method stub            return groupPosition;        }        /**         * 获取分组下标为groupPosition 里的子元素下标为childPosition元素的id         */        @Override        public long getChildId(int groupPosition, int childPosition) {            // TODO Auto-generated method stub            return childPosition;        }        /**         * 底层设计         * 分组和子元素是否有稳定的id   底层的数据改变不会影响他们         */        @Override        public boolean hasStableIds() {            // TODO Auto-generated method stub            return false;        }        /**         * 分组的视图对象         * 参数1:分组的位置下标         * 参数2:当前分组是否展开         * 参数3:复用的视图         * 参数4:指明父控件 ExpandableListView         */        @Override        public View getGroupView(int groupPosition, boolean isExpanded,                View convertView, ViewGroup parent) {            // TODO Auto-generated method stub            View view = LayoutInflater.from(MainActivity.this)                    .inflate(R.layout.item_group, parent,false);            TextView tv = (TextView) view.findViewById(R.id.tv_item_group);            tv.setText(groupData[groupPosition]);                        return view;        }        /**         * 子元素的视图         *         * 参数1:当前分组的下标         * 参数2:当前子元素的下标         * 参数3:是否是最后一个子元素视图         * 参数4:子元素复用视图         * 参数5:指明父控件 ExpandableListView         */        @Override        public View getChildView(int groupPosition, int childPosition,                boolean isLastChild, View convertView, ViewGroup parent) {            // TODO Auto-generated method stub                        View view = LayoutInflater.from(MainActivity.this)                    .inflate(R.layout.item_child, parent,false);            TextView tv = (TextView) view.findViewById(R.id.tv_item_child);            tv.setText(childData[groupPosition][childPosition]);                        return view;        }        /**         * 子元素能否被点击  false不能被点击   true可以被点击         */        @Override        public boolean isChildSelectable(int groupPosition, int childPosition) {            // TODO Auto-generated method stub            return true;        }            }}</span>


0 0