一、Mactivity的Xml中
<<span style="color:#000080;font-weight:bold;">ExpandableListView android:id="@+id/mExpandableView" android:layout_width="match_parent" android:layout_height="wrap_content" android:dividerHeight="10dp" android:divider="#ff00ff" >
二、Mactivity中
public class MainActivity extends AppCompatActivity { private ExpandableListView mExpandableView; private ArrayList mGroup =new ArrayList<>(); private ArrayList> mChild = new ArrayList<>() ; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initDate(); myAdapter = new MyAdapter(mGroup, mChild, MainActivity.this); mExpandableView.setAdapter(myAdapter); } private void initDate() { mGroup.add("我的家人"); mGroup.add("我的朋友"); mGroup.add("我的情人"); mChild = new ArrayList<>(); ArrayList mList = new ArrayList<>(); mList.add("红红"); mList.add("黄欢"); mList.add("屡屡"); mChild.add(mList); // mList.clear(); mList = new ArrayList<>(); mList.add("红红"); mList.add("黄欢"); mList.add("屡屡"); mChild.add(mList); // mList.clear(); mList = new ArrayList<>(); mList.add("红红"); mList.add("黄欢"); mList.add("屡屡"); mChild.add(mList); } private void initView() { mExpandableView = (ExpandableListView) findViewById(R.id.mExpandableView); } }
三、适配器
public class MyAdapter extends BaseExpandableListAdapter { private ArrayList mGroup; private ArrayList> mChild; private Context context; public MyAdapter(ArrayList mGroup, ArrayList> mChild, Context context) { this.mGroup = mGroup; this.mChild = mChild; this.context = context; } @Override public int getGroupCount() { return mGroup.size(); } @Override public int getChildrenCount(int groupPosition) { return mChild.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { return null; } @Override public Object getChild(int groupPosition, int childPosition) { return null; } @Override public long getGroupId(int groupPosition) { return 0; } @Override public long getChildId(int groupPosition, int childPosition) { return 0; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.item1, null); holder = new ViewHolder(convertView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.mTv1.setText(mGroup.get(groupPosition)); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, booleanisLastChild, View convertView2, ViewGroup parent) { ViewHolder2 holder2 = null; if (convertView2 == null) { convertView2 = LayoutInflater.from(context).inflate(R.layout.item2, null); holder2 = new ViewHolder2(convertView2); convertView2.setTag(holder2); } else { holder2 = (ViewHolder2) convertView2.getTag(); } holder2.mTv2.setText(mChild.get(groupPosition).get(childPosition)); return convertView2; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } public static class ViewHolder { public View rootView; public TextView mTv1; public ViewHolder(View rootView) { this.rootView = rootView; this.mTv1 = (TextView) rootView.findViewById(R.id.mTv1); } } class ViewHolder2 { public View rootView; public ImageView mImage; public TextView mTv2; public ViewHolder2(View rootView) { this.rootView = rootView; this.mImage = (ImageView) rootView.findViewById(R.id.mImage); this.mTv2 = (TextView) rootView.findViewById(R.id.mTv2); } } }
四、适配器Xml中
随便写一个带一个Textview的和一个带两个或者多个的TextView的xml即可!!!