这个例子是小弟上网搜了相关资料和文章和看了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
分享到:
相关推荐
在Android应用开发中,"ExpandableListView实现购物车页面"是一个常见的需求,它涉及到用户界面设计、数据管理和交互。ExpandableListView是Android SDK提供的一种可扩展的列表视图,允许用户展示分组数据,每组内...
在Android开发中,`ExpandableListView`是一种常用的控件,用于展示可以展开和折叠的列表,非常适合用来构建层级结构的数据,比如本例中的城市列表。`ExpandableListView`提供了更丰富的用户交互体验,使得复杂的...
基于ExpandableListView实现评论和回复的功能。 > 说明 提供了模拟数据,实现评论和回复的插入数据 对评论和回复数据进行了异常处理 material design风格的详情页 处理了NestedScrollView、ExpandableListView和...
下面将详细介绍如何在`Android`中实现`ExpandableListView`嵌套`GridView`。 ### 1. ExpandableListView基本概念 `ExpandableListView`是Android提供的一个特殊的列表控件,它可以显示分组数据,每个分组下可以...
通过以上步骤,你可以成功地在Android应用中实现一个基于`ExpandableListView`的时间轴。这种实现方式既保留了`ExpandableListView`的扩展性,又赋予了时间轴的视觉效果,是展示时间序列数据的好方法。当然,随着...
Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape Android 源码...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这种控件在显示层次结构数据时非常实用,比如目录结构、菜单或者组织架构等。本示例将详细介绍...
在Android开发中,`ExpandableListView`是一种常用的控件,用于展示可以展开和折叠的列表,通常用于构建具有层级结构的数据展示,例如树形目录。在这个案例中,我们讨论的是如何利用`ExpandableListView`创建一个...
在Android开发中,`ExpandableListView`是一种非常实用的视图组件,用于展示具有层级结构的数据,例如分类列表。在日常应用中,我们经常会遇到需要将数据按照分组进行展示的情况,比如联系人按字母分组、菜单按功能...
在Android应用开发中,"ExpandableListView实现Android购物车"是一个常见的需求,它涉及到用户界面设计、数据管理和交互。ExpandableListView是Android SDK提供的一种视图组件,用于展示可展开和折叠的列表,非常...
本篇将详细介绍如何在Android中自定义`ExpandableListView`以实现二级列表。 首先,理解`ExpandableListView`的基本概念。它是`ListView`的扩展,支持子项(child items)和父项(group items)的概念。父项可以...
本示例“Android使用ExpandableListview实现时间轴TimeLineDemo”就是基于`ExpandableListView`来创建一个可展开的时间轴效果。 首先,我们要理解`ExpandableListView`的基本工作原理。它允许每个列表项(group)都...
在Android开发中,`ExpandableListView`是一种非常实用的列表控件,它允许用户通过点击条目来展开或折叠子列表。这个控件是`ListView`的扩展,提供了更丰富的交互性和展示层次结构数据的能力。在本文中,我们将深入...
在Android开发中,`ExpandableListView`是一种常用的控件,它扩展了标准的`ListView`功能,允许子项可以被展开或折叠,呈现层次结构的数据。这个控件非常适合用来展示具有树状结构的信息,比如菜单、目录或者组织...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这种控件在显示层次结构数据时非常实用,比如目录结构、菜单列表或者分类信息等。本文将详细探讨`...
在"Android的ExpandableListView+CheckBox全选"这个主题中,我们将深入探讨如何将这两个元素整合,实现联动效果。 首先,我们需要创建`ExpandableListAdapter`,它是`ExpandableListView`的数据适配器。在这个...
下面我们将深入探讨如何在Android应用中实现`ExpandableListView`的二级列表效果。 首先,我们要理解`ExpandableListView`的基本概念。它是由多个组(Group)组成,每个组内包含多个子项(Child)。当用户点击一个...
在这个项目中,“Android-基于ExpandableListView实现评论和回复的功能”旨在教你如何利用`ExpandableListView`来创建一个可展开和折叠的评论与回复界面。 首先,你需要理解`ExpandableListView`的基本概念。`...
"ExpandableListView实现二级列表购物车" ExpandableListView是Android中的一种视图组件,用于显示二级列表的数据。它可以将数据分组显示,方便用户浏览和操作。下面我们来详细介绍如何使用ExpandableListView实现...
在Android开发中,ExpandableListView是一个非常实用的原生控件,它允许用户展示一个可折叠的列表,其中每个条目都可以展开显示更多的子项。这个控件在处理层次结构数据时特别有用,例如菜单、目录或者组织结构。在...