zoukankan      html  css  js  c++  java
  • Android中ExpandableListView的使用

    ExpandableListView是android中可以实现下拉list的一个控件,具体的实现方法如下:

    首先:在layout的xml文件中定义一个ExpandableListView

    < LinearLayout     
        android:id ="@+id/linearLayout"    
        android:layout_width ="fill_parent"     
        android:layout_height ="fill_parent"    
        androidrientation ="vertical"    
        >    
           
        < ExpandableListView    
        android:id ="@+id/expandableListView"    
        android:layout_width ="fill_parent"    
        android:layout_height ="wrap_content"    
            />    
    </ LinearLayout >  

    定义两个List,用来存放控件中Group/Child中的String

    private  List<String> groupArray;   
    private  List<List<String>> childArray;  

    对这两个List进行初始化,并插入一些数据

    groupArray = new  ArrayList<String>();   
    childArray = new  ArrayList<List<String>>();   
       
    groupArray.add("第一行" );   
    groupArray.add("第二行" );   
       
    List<String> tempArray = new  ArrayList<String>();   
    tempArray.add("第一条" );   
    tempArray.add("第二条" );   
    tempArray.add("第三条" );   
       
    for (int  index = 0 ; index <groupArray.size(); ++index)   
    {   
        childArray.add(tempArray);   
    }   

    定义ExpandableListView的Adapter

    //ExpandableListView的Adapter    
    public  class  ExpandableAdapter extends  BaseExpandableListAdapter   
    {   
        Activity activity;   
           
        public  ExpandableAdapter(Activity a)   
        {   
            activity = a;   
        }   
        public  Object getChild(int  groupPosition, int  childPosition)   
        {   
            return  childArray.get(groupPosition).get(childPosition);   
        }   
        public  long  getChildId(int  groupPosition, int  childPosition)   
        {   
            return  childPosition;   
        }   
        public  int  getChildrenCount(int  groupPosition)   
        {   
            return  childArray.get(groupPosition).size();   
        }   
        public  View getChildView(int  groupPosition, int  childPosition,   
                boolean  isLastChild, View convertView, ViewGroup parent)   
        {   
            String string = childArray.get(groupPosition).get(childPosition);   
            return  getGenericView(string);   
        }   
        // group method stub    
        public  Object getGroup(int  groupPosition)   
        {   
            return  groupArray.get(groupPosition);   
        }   
        public  int  getGroupCount()   
        {   
            return  groupArray.size();   
        }   
        public  long  getGroupId(int  groupPosition)   
        {   
            return  groupPosition;   
        }   
        public  View getGroupView(int  groupPosition, boolean  isExpanded,   
                View convertView, ViewGroup parent)   
        {   
            String string = groupArray.get(groupPosition);   
            return  getGenericView(string);   
        }   
        // View stub to create Group/Children 's View    
        public  TextView getGenericView(String string)   
        {   
            // Layout parameters for the ExpandableListView    
            AbsListView.LayoutParams layoutParams = new  AbsListView.LayoutParams(   
                    ViewGroup.LayoutParams.FILL_PARENT, 64 );   
            TextView text = new  TextView(activity);   
            text.setLayoutParams(layoutParams);   
            // Center the text vertically    
            text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);   
            // Set the text starting position    
            text.setPadding(36 , 0 , 0 , 0 );   
            text.setText(string);   
            return  text;   
        }   
        public  boolean  hasStableIds()   
        {   
            return  false ;   
        }   
        public  boolean  isChildSelectable(int  groupPosition, int  childPosition)   
        {   
            return  true ;   
        }   
    }   

    最后,给定义好的ExpandableListView添加上Adapter

    ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.expandableListView);   
    expandableListView.setAdapter(new  ExpandableAdapter(Main.this ));   
  • 相关阅读:
    day84
    模型层之单表操作
    Django的模板层
    Django框架导读
    创建Django项目
    名称空间2.0path
    js基础之BOM和DOM
    LG5003 跳舞的线
    20191003 「HZOJ NOIP2019 Round #8」20191003模拟
    LG3092 「USACO2013NOV」No Change 状压DP
  • 原文地址:https://www.cnblogs.com/xuewater/p/2631017.html
Copyright © 2011-2022 走看看