`

Android中ExpandableListView的实现

阅读更多
  这个例子是小弟上网搜了相关资料和文章和看了APIdemo后自己实现的一个例子,用在小项目中。都是从小学习到大的,所以都知道在不会的时候很想找人帮自己一把。希望这个对正在研究Android的兄弟(姐们)们有帮助。
  不知道怎么显示截图,只能放在附件里,sorry!不多说,上菜。
1。首先:定义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"
    >
    <ExpandableListView
    android:id="@+id/ex_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    />   
</LinearLayout>
我的截图中有不相关的控件定义,所以在这省略不写了。自己把握。
2。定义一个Adapter来继承BaseExpandableListView,并实现相关方法。
package com.ldci.second.tools;
import com.ldci.second.mypnone.CallInActivity;


import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;

import android.widget.TextView;


public class CallInExpandableAdapter extends BaseExpandableListAdapter {
CallInActivity GIS;

public CallInExpandableAdapter(CallInActivity _GIS) {
super();
GIS = _GIS;
}
//父菜单内容和子菜单选项内容
private String[] in_groups = {"来电背景", "字体设置","号码设置"};
public String[][] in_children = {
                    {"启用背景图片"},
                    {"字体颜色","字体大小"},
                    {"号码颜色","号码大小"}
                    };

//**************************************
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
Log.v("MyAdapter","pos="+groupPosition);
TextView view = getGenericView();
view.setText(getGroup(groupPosition).toString());
return view;
}

public TextView getGenericView() {
// Layout parameters for the ExpandableListView
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, 45);

TextView tv = new TextView(GIS);

tv.setTextSize(30);
tv.setLayoutParams(lp);
// Set the text starting position
tv.setPadding(36, 0, 0, 0);

return tv;

}

public long getGroupId(int groupPosition) {
return groupPosition;
}

public Object getGroup(int groupPosition) {
return in_groups[groupPosition];

}

public int getGroupCount() {
return in_groups.length;

}
//子列表属性设置
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView view = getChildTextView(groupPosition, childPosition);
view.setTextSize(24);
return view;
}

public TextView getChildTextView(int gos, int cos) {
TextView view = new TextView(GIS);
view.setText(in_children[gos][cos]);
return view;
}

public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

public Object getChild(int groupPosition, int childPosition) {
return in_children[groupPosition][childPosition];
}

public int getChildrenCount(int groupPosition) {
return in_children[groupPosition].length;
}
//**************************************
public boolean hasStableIds() {
return true;
}

public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}

}
3。就是自己写一个Activity来显示在界面上,直观的看到效果
package com.ldci.second.mypnone;

import java.util.Timer;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.Toast;
import android.widget.ExpandableListView.OnChildClickListener;

import com.ldci.second.tools.CallInExpandableAdapter;
import com.ldci.second.tools.PhoneNumService;
import com.ldci.second.tools.ServiceStateMark;
public class CallInActivity extends Activity{
CallInExpandableAdapter adapter;

ExpandableListView expandableList;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.call_in);

adapter = new CallInExpandableAdapter(CallInActivity.this);  
expandableList = (ExpandableListView) findViewById(R.id.ex_list);


expandableList.setAdapter(adapter);

expandableList.setOnChildClickListener(new OnChildClickListener(){
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
if(groupPosition==0 && childPosition==0){

}
if(groupPosition== 1&& childPosition==0){
                                         
}
if(groupPosition== 1&& childPosition==1){


}
if(groupPosition== 2&& childPosition==0){

}
if(groupPosition== 2&& childPosition==1){

}

return false;
}
});
}

}
三步下来就会实现ExpandableListView的效果。代码肯定有不足之处,欢迎大家指正,共同进步
  • 大小: 13.3 KB
  • 大小: 18.7 KB
分享到:
评论
1 楼 crystalxi711 2012-12-06  
onChildClick中if(groupPosition==0 && childPosition==0){

}
请问,这个方法中如果要跳转页面怎么实现

相关推荐

    ExpandableListView实现购物车页面

    在Android应用开发中,"ExpandableListView实现购物车页面"是一个常见的需求,它涉及到用户界面设计、数据管理和交互。ExpandableListView是Android SDK提供的一种可扩展的列表视图,允许用户展示分组数据,每组内...

    Android 利用ExpandableListView实现城市列表

    在Android开发中,`ExpandableListView`是一种常用的控件,用于展示可以展开和折叠的列表,非常适合用来构建层级结构的数据,比如本例中的城市列表。`ExpandableListView`提供了更丰富的用户交互体验,使得复杂的...

    Android代码-基于ExpandableListView实现评论和回复的功能。

    基于ExpandableListView实现评论和回复的功能。 &gt; 说明 提供了模拟数据,实现评论和回复的插入数据 对评论和回复数据进行了异常处理 material design风格的详情页 处理了NestedScrollView、ExpandableListView和...

    android中ExpandableListView嵌套GridView的使用

    下面将详细介绍如何在`Android`中实现`ExpandableListView`嵌套`GridView`。 ### 1. ExpandableListView基本概念 `ExpandableListView`是Android提供的一个特殊的列表控件,它可以显示分组数据,每个分组下可以...

    Android使用ExpandableListview实现时间轴

    通过以上步骤,你可以成功地在Android应用中实现一个基于`ExpandableListView`的时间轴。这种实现方式既保留了`ExpandableListView`的扩展性,又赋予了时间轴的视觉效果,是展示时间序列数据的好方法。当然,随着...

    Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape

    Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape Android 源码...

    Android中ExpandableListView示例

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这种控件在显示层次结构数据时非常实用,比如目录结构、菜单或者组织架构等。本示例将详细介绍...

    android ExpandableListView 四级树形目录

    在Android开发中,`ExpandableListView`是一种常用的控件,用于展示可以展开和折叠的列表,通常用于构建具有层级结构的数据展示,例如树形目录。在这个案例中,我们讨论的是如何利用`ExpandableListView`创建一个...

    Android中ExpandableListView使用

    在Android开发中,`ExpandableListView`是一种非常实用的视图组件,用于展示具有层级结构的数据,例如分类列表。在日常应用中,我们经常会遇到需要将数据按照分组进行展示的情况,比如联系人按字母分组、菜单按功能...

    ExpandableListView实现Android购物车

    在Android应用开发中,"ExpandableListView实现Android购物车"是一个常见的需求,它涉及到用户界面设计、数据管理和交互。ExpandableListView是Android SDK提供的一种视图组件,用于展示可展开和折叠的列表,非常...

    Android自定义ExpandableListView实现二级列表

    本篇将详细介绍如何在Android中自定义`ExpandableListView`以实现二级列表。 首先,理解`ExpandableListView`的基本概念。它是`ListView`的扩展,支持子项(child items)和父项(group items)的概念。父项可以...

    Android使用ExpandableListview实现时间轴TimeLineDemo.zip

    本示例“Android使用ExpandableListview实现时间轴TimeLineDemo”就是基于`ExpandableListView`来创建一个可展开的时间轴效果。 首先,我们要理解`ExpandableListView`的基本工作原理。它允许每个列表项(group)都...

    Android开发丶ExpandableListView实现可展开列表

    在Android开发中,`ExpandableListView`是一种非常实用的列表控件,它允许用户通过点击条目来展开或折叠子列表。这个控件是`ListView`的扩展,提供了更丰富的交互性和展示层次结构数据的能力。在本文中,我们将深入...

    Android之ExpandableListView控件

    在Android开发中,`ExpandableListView`是一种常用的控件,它扩展了标准的`ListView`功能,允许子项可以被展开或折叠,呈现层次结构的数据。这个控件非常适合用来展示具有树状结构的信息,比如菜单、目录或者组织...

    android ExpandableListView完整实现

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这种控件在显示层次结构数据时非常实用,比如目录结构、菜单列表或者分类信息等。本文将详细探讨`...

    Android的ExpandableListView+CheckBox全选

    在"Android的ExpandableListView+CheckBox全选"这个主题中,我们将深入探讨如何将这两个元素整合,实现联动效果。 首先,我们需要创建`ExpandableListAdapter`,它是`ExpandableListView`的数据适配器。在这个...

    【Android】ExpandableListView二级列表效果

    下面我们将深入探讨如何在Android应用中实现`ExpandableListView`的二级列表效果。 首先,我们要理解`ExpandableListView`的基本概念。它是由多个组(Group)组成,每个组内包含多个子项(Child)。当用户点击一个...

    Android-基于ExpandableListView实现评论和回复的功能

    在这个项目中,“Android-基于ExpandableListView实现评论和回复的功能”旨在教你如何利用`ExpandableListView`来创建一个可展开和折叠的评论与回复界面。 首先,你需要理解`ExpandableListView`的基本概念。`...

    ExpandableListView实现二级列表购物车

    "ExpandableListView实现二级列表购物车" ExpandableListView是Android中的一种视图组件,用于显示二级列表的数据。它可以将数据分组显示,方便用户浏览和操作。下面我们来详细介绍如何使用ExpandableListView实现...

    Android中ExpandableListView(原生控件)3----只展开一组

    在Android开发中,ExpandableListView是一个非常实用的原生控件,它允许用户展示一个可折叠的列表,其中每个条目都可以展开显示更多的子项。这个控件在处理层次结构数据时特别有用,例如菜单、目录或者组织结构。在...

Global site tag (gtag.js) - Google Analytics