ExpandableListview
特点:可展开的列表视图控件(二级列表),继承与ListView
类的层级关系:
AbsListView
ListView
ExpandableListView
GridView
步骤:
1》找控件
2》设置数据
3》设置适配器
ExpandableListAdapter{
getGroupCoutn
getGroupView
getChildCount
getChildrenView
isChildSelectable:是否可选择子级项
}
4》设置监听 setOnChildClickListener
.xml
<ExpandableListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/elv"
/>
.java
public class MainActivity extends ActionBarActivity {
private String[] groups;
private String[][] childs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1.找控件
ExpandableListView elv = (ExpandableListView) findViewById(R.id.elv);
//2.设置数据
initData();
//3.适配器
elv.setAdapter(new BaseExpandableListAdapter(){
@Override
public boolean isChildSelectable(int arg0, int arg1) {
return true;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public View getGroupView(int arg0, boolean arg1, View arg2, ViewGroup arg3) {
// TODO Auto-generated method stub
View view=View.inflate(MainActivity.this, android.R.layout.simple_expandable_list_item_1, null);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
text1.setText(groups[arg0]);
return view;
}
@Override
public long getGroupId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getGroupCount() {
return groups.length;
}
@Override
public Object getGroup(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getChildrenCount(int arg0) {
// TODO Auto-generated method stub
return childs[arg0].length;
}
@Override
public View getChildView(int arg0, int arg1, boolean arg2, View arg3,
ViewGroup arg4) {
// TODO Auto-generated method stub
View view=View.inflate(MainActivity.this, android.R.layout.simple_expandable_list_item_1, null);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
text1.setTextSize(40);
text1.setTextColor(Color.RED);
text1.setText(childs[arg0][arg1]);
return view;
}
@Override
public long getChildId(int arg0, int arg1) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getChild(int arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
});
//监听器
elv.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView arg0, View arg1, int arg2,
int arg3, long arg4) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, childs[arg2][arg3], Toast.LENGTH_LONG).show();
return false;
}
});
}
private void initData() {
// TODO Auto-generated method stub
groups=new String[]{"哈哈","呵呵","嘿嘿"};
childs=new String[][]{
{"haha1","haha2","haha3"},
{"hehe1"},
{"heihei1","heihei2"}
};
}
}