ExpandableListView是ListView的子类,他在ListView的基础上进行了扩展,它可以将列表项分为几组....以下就是我的一些代码
package com.hurui.myexpandablelistview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private ExpandableListView my_expand; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); my_expand=(ExpandableListView)findViewById(R.id.my_expanview); final String[] armtype={"我的好友","我的兄弟","我的寝室"}; final String[][] arms={{"李文涛","李建宝","刘巍","郑淼","赵超"}, {"王弄潇","高敏","陈浩","冯辉"}, {"胡锐","付必胜","徐浩浩","陈磊"}}; ExpandableListAdapter adapter=new BaseExpandableListAdapter() { @Override //返回共有多少个父选项 public int getGroupCount() { return armtype.length; } //返回子菜单的长度.... @Override public int getChildrenCount(int groupPosition) { return arms[groupPosition].length; } //返回父选项下的数组 @Override public Object getGroup(int groupPosition) { return armtype[groupPosition]; } //返回子选项的第几个... @Override public Object getChild(int groupPosition, int childPosition) { return arms[groupPosition][childPosition]; } //返回父选项的ID @Override public long getGroupId(int groupPosition) { return groupPosition; } //返回子选项的ID... @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { LinearLayout ll=new LinearLayout(MainActivity.this); ll.setOrientation(LinearLayout.HORIZONTAL); ImageView logo=new ImageView(MainActivity.this); logo.setImageResource(R.mipmap.img08); ll.addView(logo); TextView textView=getTextView(); textView.setText(getGroup(groupPosition).toString()); ll.addView(textView); return ll; } //得到子选项的view @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView tv=getTextView(); tv.setText(getChild(groupPosition,childPosition).toString()); return tv; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } //自定义的TextView控件 public TextView getTextView(){ TextView tv=new TextView(MainActivity.this); AbsListView.LayoutParams ap=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64); tv.setLayoutParams(ap); tv.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT); tv.setPadding(16,0,0,0); tv.setTextSize(20); return tv; } }; my_expand.setAdapter(adapter); } }
以下是这段代码产生的效果图...