Android关于自定义ExpandableListView样式

创建项目:ExpandableListView

运行项目效果:

Android关于自定义ExpandableListView样式_第1张图片

布局文件

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" ><ExpandableListView     android:id="@id/android:list"    android:layout_width="match_parent"    android:layout_height="match_parent"    style="@style/myExpandableListView"    android:drawSelectorOnTop="false"    /><TextView    android:id="@id/android:empty"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:text="no data"    /></LinearLayout>

第一级条目布局
group.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/groupTo"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:paddingLeft="40px"        android:paddingTop="3px"        android:paddingBottom="3px"        android:textSize="26sp"         android:text="No data"        /></LinearLayout>


第二级条目布局

child.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/childTo"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:paddingLeft="50px"        android:paddingTop="5px"        android:paddingBottom="5px"        android:textSize="20sp"        android:text="No data"/></LinearLayout>


在drawable-mdpi中定义my_expander_group.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:drawable="@drawable/ic_picture" ></item></selector>


MainActivity.java

package org.wwj.view;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.ExpandableListActivity;import android.os.Bundle;import android.widget.SimpleExpandableListAdapter;public class MainActivity extends ExpandableListActivity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                //定义一个List,该List对象为一级条目提供数据        List<Map<String, String>> groups = new ArrayList<Map<String,String>>();        Map<String, String> group1 = new HashMap<String, String>();        group1.put("group", "第一组");        Map<String, String> group2 = new HashMap<String, String>();        group2.put("group", "第二组");        groups.add(group1);        groups.add(group2);              //定义一个List,该List对象为第一个一级条目提供二级条目的数据        List<Map<String, String>> child1 = new ArrayList<Map<String,String>>();        Map<String, String> child1data1 = new HashMap<String, String>();        child1data1.put("child", "第一条");        child1.add(child1data1);        Map<String, String> child1data2 = new HashMap<String, String>();        child1data2.put("child", "第二条");        child1.add(child1data2);                //定义一个List,该List对象为第二个一级条目提供二级条目的数据        List<Map<String, String>> child2 = new ArrayList<Map<String,String>>();        Map<String, String> child2data1 = new HashMap<String, String>();        child2data1.put("child", "第三条");        child2.add(child2data1);        Map<String, String> child2data2 = new HashMap<String, String>();        child2data2.put("child", "第四条");        child2.add(child2data2);                        //定义一个List,该List对象存储所有的二级条目的数据        List<List<Map<String, String>>> childs = new ArrayList<List<Map<String,String>>>();        childs.add(child1);        childs.add(child2);                //生成一个SimpleExpandableListAdapter对象//1.context//2.一级条目的数据//3.用来设置一级条目样式的布局文件//4.指定一级条目数据的key//5.指定一级条目数据显示控件的id//6.指定二级条目的数据//7.用来设置二级条目样式的布局文件//8.指定二级条目数据的key//9.指定二级条目数据显示控件的id        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this        , groups        , R.layout.group        , new String[]{"group"}        , new int[] {R.id.groupTo}        , childs        , R.layout.child        , new String[]{"child"}        , new int[] {R.id.childTo}        );      //将SimpleExpandableListAdapter对象设置给当前的ExpandableListActivity        setListAdapter(adapter);            }}


更多相关文章

  1. Android 通过WebView 调用Js sqlite数据库
  2. android imageswitcher gallery 根据数据库内图片名字进行查看/
  3. 数据短信接收
  4. Android串口开发,基于官方的android-serialport-api增加支持设置
  5. Android使用SQlite数据库
  6. Android内部数据库

随机推荐

  1. Debug with android ndk-gdb
  2. Androd开发艺术探索 第10章 Android的消
  3. Android SDK 和 杂7杂8
  4. android Settings中的各个默认设置
  5. Android 编译NDK
  6. Android 初识Retrofit
  7. TabHost两种实现方式
  8. android 命令(adb shell)进入指定模拟器
  9. android2.2资源文件详解4--menu文件夹下
  10. ListItem更改背景色