简单齐全的ExtendListVeiw 去掉系统箭头,二级菜单删除等功能
/***********************************话不多说,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<People> 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>();
People p1 = new People();
p1.setName("初一");
p1.setSex(1);
List<Students> list1 = new ArrayList<Students>();
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<Students> list2 = new ArrayList<Students>();
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<Students> list3 = new ArrayList<Students>();
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<People> pList = null;
private LayoutInflater inflater = null;
public MyAdapter(Context context, List<People> 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<Students> 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;
}
}
demo下载