广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Android中ExpandableListView的用法实例

    2018-04-25 21:45:48 次阅读 稿源:互联网
    广告

    本文实例讲述了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));

    希望本文所述对大家的Android程序设计有所帮助。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告