09 ExpanableListView 的代码例子
来源:互联网 发布:章淘客cms 编辑:程序博客网 时间:2024/06/05 20:35
<span style="font-size:18px;">package com.qf.day09_expandablelistview03;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ExpandableListView.OnChildClickListener;import android.widget.ExpandableListView.OnGroupClickListener;import android.widget.ExpandableListView.OnGroupCollapseListener;import android.widget.ExpandableListView.OnGroupExpandListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private ExpandableListView expandableListView; private String[] groupData = {"朋友","同学","同事"}; private String[][] childData ={{"马云","王健林","马化腾"},{"老马","老王","小马"},{"许中","光头","翠"}}; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); adapter = new MyAdapter(); expandableListView.setAdapter(adapter); //分组的点击事件 expandableListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { Toast.makeText(MainActivity.this, "==onGroupClick==", Toast.LENGTH_SHORT).show(); return false; } }); //子元素的点击事件 expandableListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "==onChildClick=="+childData[groupPosition][childPosition], Toast.LENGTH_SHORT).show(); return false; } }); //分组展开的监听 expandableListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "==onGroupExpand==", Toast.LENGTH_SHORT).show(); } }); //分组折叠的监听 expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "==onGroupCollapse==", Toast.LENGTH_SHORT).show(); } }); } public class MyAdapter extends BaseExpandableListAdapter{ /** * 获取分组的个数 */ @Override public int getGroupCount() { // TODO Auto-generated method stub return groupData.length; } /** * 获取当前下标分组里的子元素的个数 */ @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return childData[groupPosition].length; } /** * 获取当前下标分组的数据 */ @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return groupData[groupPosition]; } /** * 获取分组下标为groupPosition里子元素的下标为childPosition的数据 */ @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childData[groupPosition][childPosition]; } /** * 获取下标为groupPosition分组的id */ @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } /** * 获取分组下标为groupPosition 里的子元素下标为childPosition元素的id */ @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } /** * 底层设计 * 分组和子元素是否有稳定的id 底层的数据改变不会影响他们 */ @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } /** * 分组的视图对象 * 参数1:分组的位置下标 * 参数2:当前分组是否展开 * 参数3:复用的视图 * 参数4:指明父控件 ExpandableListView */ @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = LayoutInflater.from(MainActivity.this) .inflate(R.layout.item_group, parent,false); TextView tv = (TextView) view.findViewById(R.id.tv_item_group); tv.setText(groupData[groupPosition]); return view; } /** * 子元素的视图 * * 参数1:当前分组的下标 * 参数2:当前子元素的下标 * 参数3:是否是最后一个子元素视图 * 参数4:子元素复用视图 * 参数5:指明父控件 ExpandableListView */ @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = LayoutInflater.from(MainActivity.this) .inflate(R.layout.item_child, parent,false); TextView tv = (TextView) view.findViewById(R.id.tv_item_child); tv.setText(childData[groupPosition][childPosition]); return view; } /** * 子元素能否被点击 false不能被点击 true可以被点击 */ @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } }}</span>
0 0
- 09 ExpanableListView 的代码例子
- ExpanableListView
- ExpanableListVIew一个奇妙的“手风琴”
- GridView、AutoCompleteTextView、ExpanableListView的用法
- Android UI基础之 ExpanableListView 的实现
- android的ExpanableListView的一点实用小经验
- 接口的例子代码
- 使用listview/expanablelistview listitem中的button控件获取item的索引
- ·代码加亮的例子
- 多线程下载的代码例子
- jsdoc-toolkit的例子代码
- base64code 的一个例子代码
- 一个代码滥用的例子
- Cocos Studio的代码例子
- 一个listView的例子代码
- Fragment ViewPager的例子代码
- 一些XMLHttpRequest的例子代码
- 代码易错的例子
- exec函数讲解
- 成本中心通过利润中心来和公司代码对应
- 如何用 Git 将代码恢复到一个历史的版本
- 【MySQL 07】数据库恢复技术
- React Native Android ScrollView 去除阴影效果
- 09 ExpanableListView 的代码例子
- GANs学习系列(3):GANs main stream paper
- Poj 1777 梅森素数
- Servlet 的生命周期与工作原理
- git使用笔记
- 实践之mybatis读取不到mapp文件解决
- 【NOIP模拟】艾比所特
- 全球首款同时同频全双工软件无线电平台
- Android下的挂钩(hook)和代码注入(inject)