当前位置:操作系统 > 安卓/Android >>

Android中ExpandableListView控件基本使用

 

    本文采用一个Demo来展示Android中ExpandableListView控件的使用,如如何在组/子ListView中绑定数据源。直接上代码如下:

 

程序结构图:

 

\

 

layout目录下的main.xml 文件源码如下:

 

 

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:orientation="vertical"  

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent"> 

    <!-- 我们会自己定义listview的显示方式(在另外一个布局文件里边)不用默认的方式  

         如果自定义listview的显示方式这里这个android:id="@id/android:list" 必须这样写--> 

    <!-- android:drawSelectOnTop="false"此属性用来设置listview上的背景颜色会不会 

     挡住(覆盖)内容, 如果这是为false就表示不会覆盖掉-->  

    <ExpandableListView  

        android:id="@id/android:list"                

        android:layout_width="fill_parent"                 

        android:layout_height="wrap_content"               

        android:layout_weight="1"                

        android:drawSelectorOnTop="false"/>  

</LinearLayout> 

 

包com.andyidea.demo中ContactsActivity.java源码如下:

 

 

package com.andyidea.demo; 

 

import java.util.ArrayList; 

import java.util.List; 

 

import android.app.ExpandableListActivity; 

import android.os.Bundle; 

import android.view.Gravity; 

import android.view.View; 

import android.view.ViewGroup; 

import android.view.Window; 

import android.widget.AbsListView; 

import android.widget.BaseExpandableListAdapter; 

import android.widget.TextView; 

 

public class ContactsActivity extends ExpandableListActivity { 

     

    List<String> group;           //组列表 

    List<List<String>> child;     //子列表 

    ContactsInfoAdapter adapter;  //数据适配器 

     

    /** Called when the activity is first created. */ 

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        requestWindowFeature(Window.FEATURE_NO_TITLE);  //设置为无标题 

        setContentView(R.layout.main); 

        getExpandableListView().setBackgroundResource(R.drawable.default_bg); 

         

        initializeData(); 

        getExpandableListView().setAdapter(new ContactsInfoAdapter()); 

        getExpandableListView().setCacheColorHint(0);  //设置拖动列表的时候防止出现黑色背景 

    } 

     

    /** 

     * 初始化组、子列表数据 

     */ 

    private void initializeData(){ 

        group = new ArrayList<String>(); 

        child = new ArrayList<List<String>>(); 

         

        addInfo("Andy",new String[]{"male","138123***","GuangZhou"}); 

        addInfo("Fairy",new String[]{"female","138123***","GuangZhou"}); 

        addInfo("Jerry",new String[]{"male","138123***","ShenZhen"}); 

        addInfo("Tom",new String[]{"female","138123***","ShangHai"}); 

        addInfo("Bill",new String[]{"male","138231***","ZhanJiang"}); 

         

    } 

     

    /** 

     * 模拟给组、子列表添加数据 

     * @param g-group 

     * @param c-child 

     */ 

    private void addInfo(String g,String[] c){ 

        group.add(g); 

        List<String> childitem = new ArrayList<String>(); 

        for(int i=0;i<c.length;i++){ 

            childitem.add(c[i]); 

        } 

        child.add(childitem); 

    } 

     

    class ContactsInfoAdapter extends BaseExpandableListAdapter{ 

 

         

        //-----------------Child----------------// 

        @Override 

        public Object getChild(int groupPosition, int childPosition) { 

            return child.get(groupPosition).get(childPosition); 

        } 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,