activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<RelativeLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:paddingBottom=
"@dimen/activity_vertical_margin"
android:paddingLeft=
"@dimen/activity_horizontal_margin"
android:paddingRight=
"@dimen/activity_horizontal_margin"
android:paddingTop=
"@dimen/activity_vertical_margin"
tools:context=
"com.example.expandablelistview.MainActivity"
>
<ExpandableListView
android:id=
"@+id/ExpandableListView1_1"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_alignParentLeft=
"true"
android:layout_alignParentTop=
"true"
android:groupIndicator=
"@null"
>
</ExpandableListView>
</RelativeLayout>
<!-- android:groupIndicator=
"@null"
去掉自带的箭头图标 -->
|
group_item.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/imageViewgroup_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_launcher"
/>
<TextView
android:id=
"@+id/textViewgroup_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
|
child_item.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/imageViewchild_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_launcher"
android:padding=
"10dp"
/>
<TextView
android:id=
"@+id/textViewchild_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"sdfds"
android:padding=
"10dp"
/>
</LinearLayout>
|
MainActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
package
com.example.expandablelistview;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseExpandableListAdapter;
import
android.widget.ExpandableListView;
import
android.widget.ImageView;
import
android.widget.TextView;
public
class
MainActivity
extends
Activity {
private
ExpandableListView expandableListView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expandableListView=(ExpandableListView) findViewById(R.id.ExpandableListView1_1);
expandableListView.setAdapter(
new
MyExpandableListAdapter());
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int
id = item.getItemId();
if
(id == R.id.action_settings) {
return
true
;
}
return
super
.onOptionsItemSelected(item);
}
class
MyExpandableListAdapter
extends
BaseExpandableListAdapter{
private
String[] skills =
new
String[]{
"WORD"
,
"EXCEL"
,
"EMAIL"
,
"PPT"
};
private
String[][] groups =
new
String[][]{
{
"文档编辑"
,
"文档排版"
,
"文档处理"
,
"文档打印"
},
{
"表格编辑"
,
"表格排版"
,
"表格处理"
,
"表格打印"
},
{
"收发邮件"
,
"管理邮箱"
,
"登录登出"
,
"注册绑定"
},
{
"演示编辑"
,
"演示排版"
,
"演示处理"
,
"演示打印"
},
};
@Override
public
int
getGroupCount() {
// TODO Auto-generated method stub
return
skills.length;
}
//二级列表的数量
@Override
public
int
getChildrenCount(
int
groupPosition) {
// TODO Auto-generated method stub
return
groups[groupPosition].length;
}
//返回每一组的对象
@Override
public
Object getGroup(
int
groupPosition) {
// TODO Auto-generated method stub
return
skills[groupPosition];
}
//返回每组中的列表项
@Override
public
Object getChild(
int
groupPosition,
int
childPosition) {
// TODO Auto-generated method stub
return
groups[groupPosition][childPosition];
}
@Override
public
long
getGroupId(
int
groupPosition) {
// TODO Auto-generated method stub
return
groupPosition;
}
@Override
public
long
getChildId(
int
groupPosition,
int
childPosition) {
// TODO Auto-generated method stub
return
childPosition;
}
@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
if
(convertView==
null
){
convertView=getLayoutInflater().inflate(R.layout.group_item,
null
);
}
ImageView imageView=(ImageView) convertView.findViewById(R.id.imageViewgroup_1);
TextView textView=(TextView) convertView.findViewById(R.id.textViewgroup_1);
imageView.setImageResource(R.drawable.ic_launcher);
textView.setText(skills[groupPosition]);
return
convertView;
}
@Override
public
View getChildView(
int
groupPosition,
int
childPosition,
boolean
isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if
(convertView==
null
){
convertView=getLayoutInflater().inflate(R.layout.child_item,
null
);
ImageView imageView=(ImageView) convertView.findViewById(R.id.imageViewchild_1);
TextView textView=(TextView) convertView.findViewById(R.id.textViewchild_1);
imageView.setImageResource(R.drawable.ic_launcher);
textView.setText(groups[groupPosition][childPosition]);
}
return
convertView;
}
@Override
public
boolean
isChildSelectable(
int
groupPosition,
int
childPosition) {
// TODO Auto-generated method stub
return
true
;
}
}
}
|
本文转自 matengbing 51CTO博客,原文链接:http://blog.51cto.com/matengbing/1882709