android extend list,简单齐全的ExtendListVeiw 去掉系统箭头,二级菜单删除等功能

简单齐全的ExtendListVeiw 去掉系统箭头,二级菜单删除等功能

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

/***********************************话不多说,demo里有注释,非常简单明了*******************************************************************/

package com.extend.listview;

import java.util.ArrayList;

import java.util.List;

import com.extend.listview.adapter.MyAdapter;

import com.extend.listview.bean.People;

import com.extend.listview.bean.Students;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ExpandableListView;

public class MainActivity extends Activity {

private ExpandableListView peoplelist;

private List pList = null;

private MyAdapter adapter = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initData();

peoplelist = (ExpandableListView) findViewById(R.id.people_lv);

adapter = new MyAdapter(this, pList);

peoplelist.setAdapter(adapter);

}

// 初始化数据

public void initData() {

pList = new ArrayList();

People p1 = new People();

p1.setName("初一");

p1.setSex(1);

List list1 = new ArrayList();

Students s11 = new Students();

s11.setJob("1班长");

list1.add(s11);

Students s12 = new Students();

s12.setJob("1组长");

list1.add(s12);

Students s13 = new Students();

s13.setJob("1学习委员");

list1.add(s13);

p1.setStudents(list1);

pList.add(p1);

People p2 = new People();

p2.setName("初二");

p2.setSex(2);

List list2 = new ArrayList();

Students s21 = new Students();

s21.setJob("2班长");

list2.add(s21);

Students s22 = new Students();

s22.setJob("2组长");

list2.add(s22);

Students s23 = new Students();

s23.setJob("2学习委员");

list2.add(s23);

p2.setStudents(list2);

pList.add(p2);

People p3 = new People();

p3.setName("初三");

p3.setSex(3);

List list3 = new ArrayList();

Students s31 = new Students();

s31.setJob("3班长");

list3.add(s31);

Students s32 = new Students();

s32.setJob("3组长");

list3.add(s32);

Students s33 = new Students();

s33.setJob("3学习委员");

list3.add(s33);

p3.setStudents(list3);

pList.add(p3);

}

}

/****************************************************************************************************/

package com.extend.listview.adapter;

import java.util.List;

import com.extend.listview.R;

import com.extend.listview.bean.People;

import com.extend.listview.bean.Students;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.widget.BaseExpandableListAdapter;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

public class MyAdapter extends BaseExpandableListAdapter {

private List pList = null;

private LayoutInflater inflater = null;

public MyAdapter(Context context, List parent) {

// TODO Auto-generated constructor stub

this.inflater = LayoutInflater.from(context);

this.pList = parent;

}

// 得到子item需要关联的数据

@Override

public Students getChild(int groupPosition, int childPosition) {

People key = pList.get(groupPosition);

return (key.getStudents().get(childPosition));

}

// 得到子item的ID

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

// 设置子item的组件

@Override

public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView,

ViewGroup parent) {

CViewHolder cholder = null;

if (convertView == null) {

convertView = inflater.inflate(R.layout.txtitem, null);

cholder = new CViewHolder();

cholder.tv = (TextView) convertView.findViewById(R.id.items);

cholder.btn = (Button) convertView.findViewById(R.id.btns);

convertView.setTag(cholder);

} else {

cholder = (CViewHolder) convertView.getTag();

}

final People key = pList.get(groupPosition);

Students info = key.getStudents().get(childPosition);

cholder.tv.setText(info.getJob());

cholder.btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

List listS = key.getStudents();

listS.remove(childPosition);

notifyDataSetChanged();

}

});

return convertView;

}

// 获取当前父item下的子item的个数

@Override

public int getChildrenCount(int groupPosition) {

People key = pList.get(groupPosition);

int size = key.getStudents().size();

return size;

}

// 获取当前父item的数据

@Override

public People getGroup(int groupPosition) {

return pList.get(groupPosition);

}

// 获取当前父item的个数

@Override

public int getGroupCount() {

return pList.size();

}

// 得到当前父item的ID

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

// 设置父item组件

@Override

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

GViewHolder gholder = null;

if (convertView == null) {

convertView = inflater.inflate(R.layout.students, null);

gholder = new GViewHolder();

gholder.tv = (TextView) convertView.findViewById(R.id.txt1);

gholder.iv = (ImageView) convertView.findViewById(R.id.image1);

gholder.iv1 = (ImageView) convertView.findViewById(R.id.image2);

convertView.setTag(gholder);

} else {

gholder = (GViewHolder) convertView.getTag();

}

People p = pList.get(groupPosition);

gholder.tv.setText(p.getName());

if (p.getSex() == 1) {

gholder.iv.setImageResource(R.drawable.qqweibo_logo);

} else if (p.getSex() == 2) {

gholder.iv.setImageResource(R.drawable.sinalogo_small);

} else if (p.getSex() == 3) {

gholder.iv.setImageResource(R.drawable.qqzone_logo);

}

if (!isExpanded) {

gholder.iv1.setImageResource(R.drawable.category_iv_oneitem_arrow_up);

} else {

gholder.iv1.setImageResource(R.drawable.category_iv_oneitem_arrow_down);

}

return convertView;

}

@Override

public boolean hasStableIds() {

return true;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

public class GViewHolder {

private TextView tv;

private ImageView iv;

private ImageView iv1;

}

public class CViewHolder {

private TextView tv;

private Button btn;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值