ExpandableListView二级列表

XMl

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context=".MainActivity" >
 6
 7     <ExpandableListView
 8         android:id="@+id/elv"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11
12         ></ExpandableListView>
13
14 </RelativeLayout>

MainActivity

1 package com.bawei.d2;
  2
  3 import android.os.Bundle;
  4 import android.app.Activity;
  5 import android.view.Menu;
  6 import android.view.View;
  7 import android.view.ViewGroup;
  8 import android.widget.BaseExpandableListAdapter;
  9 import android.widget.ExpandableListView;
 10 import android.widget.ExpandableListView.OnChildClickListener;
 11 import android.widget.TextView;
 12 import android.widget.Toast;
 13
 14 public class MainActivity extends Activity {
 15
 16     private String[][] secondNames;
 17     private String[] names;
 18
 19     @Override
 20     protected void onCreate(Bundle savedInstanceState) {
 21         super.onCreate(savedInstanceState);
 22         setContentView(R.layout.activity_main);
 23     ExpandableListView  elv=(ExpandableListView) findViewById(R.id.elv);
 24
 25     names = new String[]{"     第一组","     第二组","     第三组","     第四组"};
 26     secondNames = new  String[][]{
 27             {"a","b","c"},
 28             {"d","e","f"},
 29             {"q","w","e","r"},
 30             {"s","d"}
 31     };
 32
 33     elv.setAdapter(new BaseExpandableListAdapter() {
 34
 35         @Override
 36         //控制二级列表条目是否可以点击
 37         public boolean isChildSelectable(int groupPosition, int childPosition) {
 38             // TODO Auto-generated method stub
 39             return true;
 40         }
 41
 42         @Override
 43
 44         public boolean hasStableIds() {
 45             // TODO Auto-generated method stub
 46             return false;
 47         }
 48
 49         @Override
 50          //返回一级列表的条目布局
 51         public View getGroupView(int groupPosition, boolean isExpanded,
 52                 View convertView, ViewGroup parent) {
 53             View view=View.inflate(MainActivity.this,android.R.layout.simple_list_item_1,null);
 54             TextView textView= (TextView) view.findViewById(android.R.id.text1);
 55             textView.setText(names[groupPosition]);
 56             return view;
 57         }
 58
 59         @Override
 60         //获取一级列表给定的Id
 61         public long getGroupId(int groupPosition) {
 62             // TODO Auto-generated method stub
 63             return groupPosition;
 64         }
 65
 66         @Override
 67         //第一列表的个数
 68         public int getGroupCount() {
 69             // TODO Auto-generated method stub
 70             return names.length;
 71         }
 72
 73         @Override
 74          //获取给定的一级列表的数据
 75         public Object getGroup(int groupPosition) {
 76             // TODO Auto-generated method stub
 77             return groupPosition;
 78         }
 79
 80         @Override
 81         //第二级列表的个数
 82         public int getChildrenCount(int groupPosition) {
 83             // TODO Auto-generated method stub
 84             return secondNames[groupPosition].length;
 85         }
 86
 87         @Override
 88          //返回二级列表的条目布局
 89
 90         public View getChildView(int groupPosition, int childPosition,
 91                 boolean isLastChild, View convertView, ViewGroup parent) {
 92             View view= View.inflate(MainActivity.this,android.R.layout.simple_list_item_1, null);
 93             TextView textView=(TextView) view.findViewById(android.R.id.text1);
 94             textView.setText(secondNames[groupPosition][childPosition]);
 95             return view;
 96         }
 97
 98         @Override
 99          //获取二级列表给定的ID
100         public long getChildId(int groupPosition, int childPosition) {
101             // TODO Auto-generated method stub
102             return childPosition;
103         }
104
105         @Override
106         //获取给定的二级列表的数据
107         public Object getChild(int groupPosition, int childPosition) {
108             // TODO Auto-generated method stub
109             return childPosition;
110         }
111     });        //二级列表监听
112     elv.setOnChildClickListener(new OnChildClickListener() {
113
114         @Override
115         public boolean onChildClick(ExpandableListView parent, View v,
116                 int groupPosition, int childPosition, long id) {
117             Toast.makeText(MainActivity.this, "你点击了第"+(groupPosition+1)+"组的第"+(childPosition+1)+"项", 0).show();
118             return false;
119         }
120     });
121
122
123
124
125     }
126
127
128 }
时间: 2024-08-06 02:18:25

ExpandableListView二级列表的相关文章

(转载)自定义ExpandableListView,实现二级列表效果

先看效果图: 上图是我们要实现的效果,那么现在我们开始着手去做,主要分为以下几步: 一丶我们需要根据效果图去思考该如何动手,从上图分析看,我们可以用一个相对布局RelativeLayout来完成group(一级item)的布局设计,至于child(二级item)的布局,我们可以用一个TextView来完成,当然,如果如要更复杂的效果可以参照一级item的布局方式进行. 以下是main.xml丶group.xml和child.xml的布局: main.xml <?xml version="1

ExpandableListView控件实现二级列表

效果图如下: 二级列表附有点击事件. 1.布局文件: 此处加了一个自定义的导航RelativeLayout,记得注activity的时候添加 android:theme="@style/Theme.AppCompat.Light.NoActionBar" 去掉自带的导航. 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="ht

Android基础入门教程——2.4.12 ExpandableListView(可折叠列表)的基本使用

Android基础入门教程--2.4.12 ExpandableListView(可折叠列表)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项.至于样子, 类似于QQ联系人列表,他的用法与ListView非常相似,只是ExpandableListVivew显示的列表项 需由Ex

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图 ExpandableListView可折叠列表 这一节我们介绍第三个用适配器的控件,ExpandableListView可折叠列表.这个控件可以实现我们在QQ中非常常见好友分组功能,ExpandableListView是ListView的子类,用法跟ListView差不多,下面我们来学习这个控件的基本使用: 常用属性: android:childDivider:指定各组内子类表项之间的分隔条,

22.Android之ExpandableListView树形列表学习

Android经常用到树形菜单,一般ExpandableListView可以满足这个需要,今天学习下. XML代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent

悬浮时显示二级列表jquery

$(".class").each(function () {            var get = $(this).children("ul").attr("id");            $(this).hover(function () {                $("#" + get).stop(true, true).slideDown(300);            }, function () { 

ExpandableListView二级分栏详解完美用法

对ExpandableListView控件进行封装(未自定义)直接上代码: 通用ViewHolder类,仅在setImageResource中添加代码 package com.svp.haoyan.expandablelistview.tool; import android.content.Context; import android.graphics.Bitmap; import android.util.SparseArray; import android.view.LayoutInf

Android UI编程(2)——多级列表(ExpandableListView)

参考博客: http://blog.csdn.net/xyz_lmn/article/details/6906268 http://www.apkbus.com/android-124715-1-1.html 有时候,使用ListView并不能满足应用程序所需要的功能.有些应用程序需要多组ListViw,这时候我们就要使用一种新的控件ExpandableListView--可以扩展的ListView.它的作用就是将ListView进行分组.就好像我们使用QQ的时候,有"我的好友",&q

ExpandableListView 安卓二级菜单

ExpandableListView可以显示一个视图垂直滚动显示两级列表中的条目,这不同于列表视图(ListView).ExpandableListView允许有两个层次:一级列表中有二级列表.比如在手机设置中,对于分类,有很好的效果.手机版QQ也是这样的效果. 使用ExpandableListView的整体思路 (1)给ExpandableListView设置适配器,那么必须先设置数据源. (2)数据源,就是此处的适配器类ExpandableAdapter,此方法继承了BaseExpandab