重要方法:
01 |
expandGroup
( int groupPos)
; |
02 |
setSelectedGroup
( int groupPosition)
; |
04 |
setSelectedChild
( int groupPosition, int childPosition, boolean shouldExpandGroup); |
06 |
getPackedPositionGroup
( long packedPosition); |
08 |
getPackedPositionForChild
( int groupPosition, int childPosition)
; |
10 |
getPackedPositionType
( long packedPosition); |
12 |
isGroupExpanded
( int groupPosition); |
expandableListView.setDivider();这个是设定每个Group之间的分割线。
expandableListView.setGroupIndicator();这个是设定每个Group之前的那个图标。
expandableListView.collapseGroup(int group); 将第group组收起
这里贴出一个完整的例子:
public class MainActivity extends Activity {
//标题
private String tile[] = { "我的好友", "我的同学" };
//展开内容
private String childdren[][] = {
{ "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网", "李四网",
"李四网", "李四网", "李四网", "张三", "李四", "王麻子", "李四", "李四" }, { "张三", "李四", "王麻子", "李四", "李四" } };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.list);
//设置头的展开图标
expandableListView.setGroupIndicator(null);
final ExpandableListAdapter adapter = new ExpandableListAdapter() {
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
@Override
public void onGroupExpanded(int groupPosition) {
// TODO Auto-generated method stub
}
@Override
public void onGroupCollapsed(int groupPosition) {
// TODO Auto-generated method stub
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LinearLayout layout = new LinearLayout(MainActivity.this);
layout.setOrientation(0);
//设置头像
ImageView logo = new ImageView(MainActivity.this);
logo.setImageResource(R.drawable.ic_launcher);
logo.setPadding(50, 0, 0, 0);
layout.addView(logo);
//设置文字
TextView textView = new TextView(MainActivity.this);
textView.setTextColor(Color.BLACK);
textView.setText(getGroup(groupPosition).toString());
layout.addView(textView);
return layout;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return tile.length;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return tile[groupPosition];
}
@Override
public long getCombinedGroupId(long groupId) {
// TODO Auto-generated method stub
return groupId;
}
@Override
public long getCombinedChildId(long groupId, long childId) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return childdren[groupPosition].length;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
LinearLayout ll = new LinearLayout(MainActivity.this);
ll.setOrientation(0);
//加入头像
ImageView generallogo = new ImageView(MainActivity.this);
generallogo.setImageResource(R.drawable.ic_launcher);
ll.addView(generallogo);
//加入名字
TextView textView = new TextView(MainActivity.this);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(params);
textView.setTextColor(Color.BLACK);
textView.setGravity(Gravity.CENTER);
textView.setText(getChild(groupPosition, childPosition).toString());
ll.addView(textView);
return ll;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childdren[groupPosition][childPosition];
}
@Override
public boolean areAllItemsEnabled() {
// TODO Auto-generated method stub
return false;
}
};
expandableListView.setAdapter(adapter);
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, "你点击了" + adapter.getChild(groupPosition, childPosition),
Toast.LENGTH_SHORT).show();
return false;
}
});
}
}