ExpandableListView的使用
来源:互联网 发布:算法竞赛宝典淘宝 编辑:程序博客网 时间:2024/06/01 10:00
1.定义父视图layout_parent.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/parent_textview" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center" /></LinearLayout>2.定义子视图layout_children.xml
<?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="match_parent" android:orientation="vertical" > <TextView android:id="@+id/second_textview" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center" android:gravity="center" /></LinearLayout>3.定义继承BaseExpandableListAdapter的ViewAdapter,并实现相应的方法
package com.gst.user.application;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.BaseExpandableListAdapter;import android.widget.TextView;import java.util.List;import java.util.Map;/** * Created by user on 1/20/16. */public class ViewAdapter extends BaseExpandableListAdapter { private Context mContext; private List<String> mParent; private Map<String,List<String>> mData; private LayoutInflater mLayoutInflater; public ViewAdapter(Context mContext, List<String> mParent, Map<String, List<String>> mData) { this.mContext = mContext; this.mParent = mParent; this.mData = mData; mLayoutInflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getGroupCount() { return mParent.size(); } @Override public int getChildrenCount(int groupPosition) { return mData.get(mParent.get(groupPosition)).size(); } @Override public Object getGroup(int groupPosition) { return mParent.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return mData.get(mParent.get(groupPosition)).get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return true; } //设置父item组件 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) { convertView=mLayoutInflater.inflate(R.layout.layout_parent,null); } TextView textView= (TextView) convertView.findViewById(R.id.parent_textview); textView.setText(mParent.get(groupPosition)); return convertView; } //设置子item的组件 @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { convertView=mLayoutInflater.inflate(R.layout.layout_children,null); } TextView textView= (TextView) convertView.findViewById(R.id.second_textview); textView.setText(mData.get(mParent.get(groupPosition)).get(childPosition)); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; }}4.在主工程中添加数据,实例化ViewAdapter,绑定ExpandableListView
package com.gst.user.application;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.widget.ExpandableListView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ExpandableListViewActivity extends AppCompatActivity { ExpandableListView expandableListView; Map<String,List<String>> mData; List parent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_expandable_list_view); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); initData(); expandableListView=(ExpandableListView)findViewById(R.id.expandableListView); ViewAdapter adapter=new ViewAdapter(this,parent,mData); expandableListView.setAdapter(adapter); } // 初始化数据 public void initData() { parent = new ArrayList<String>(); parent.add("parent1"); parent.add("parent2"); parent.add("parent3"); mData = new HashMap<String, List<String>>(); List<String> list1 = new ArrayList<String>(); list1.add("child1-1"); list1.add("child1-2"); list1.add("child1-3"); mData.put("parent1", list1); List<String> list2 = new ArrayList<String>(); list2.add("child2-1"); list2.add("child2-2"); list2.add("child2-3"); mData.put("parent2", list2); List<String> list3 = new ArrayList<String>(); list3.add("child3-1"); list3.add("child3-2"); list3.add("child3-3"); mData.put("parent3", list3); }}
0 0
- ExpandableListView的使用
- ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- 转载:ExpandableListView的使用
- ExpandableListView的使用
- expandablelistview的使用
- Android ExpandableListView的使用
- ExpandableListView组件的使用
- ExpandableListView的基本使用
- ExpandableListView的使用
- ExpandableListView的使用示例
- ExpandableListView的使用
- ExpandableListView的使用总结
- Android ExpandableListView的使用
- ExpandableListView的使用
- Android ExpandableListView的使用
- ExpandableListview的使用介绍
- 很好的c++和Python混合编程文章
- 80x86汇编语言编程--
- 找出所有n的平方具有对称性质(也称回文数)的数
- 直接写屏
- CRC 的简介
- ExpandableListView的使用
- 十进制586用格雷码表示是多少?
- CRC 的应用
- 双向流水灯的最简单程序
- 80x86汇编编程两题
- BCD 码的应用
- 彩虹文字--RainbowText
- C语言编程,对字符串进行处理
- 在WPF中使用PlaneProjection模拟动态3D效果