ExpandableListView分类

 资源文件xml:

<ExpandableListView
    android:id="@+id/expandable_view_id"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp" />

初始化:

private void init() {
    super.onContentChanged();
    listView = (ExpandableListView) findViewById(R.id.expandable_view_id);
    listView.setDivider(null);
    // 每个分组下的每个子项的 GridView 数据集合
    itemList.add(mDatas_jiazheng);
    itemList.add(mDatas_jiaoyu);
    itemList.add(mDatas_liren);
    itemList.add(mDatas_xiuxian);
    itemList.add(mDatas_yundong);
    itemList.add(mDatas_meishi);
    itemList.add(mDatas_hua);
    itemList.add(mDatas_shi);

    // 创建适配器
    MyExpandableListViewAdapter adapter = new MyExpandableListViewAdapter(ClassifydetilActivity.this, mclassify, itemList);
    listView.setAdapter(adapter);
    // 隐藏分组指示器
    listView.setGroupIndicator(null);
    // 默认展开第一组
    listView.expandGroup(0);
}


数据源:

private void initData() {
    mclassify = new ArrayList<Classify>();
    mclassify.add(new Classify("蔬菜", R.mipmap.sucai));
    mclassify.add(new Classify("水果", R.mipmap.shuiguo));
    mclassify.add(new Classify("海鲜", R.mipmap.haixian));
    mclassify.add(new Classify("特价区", R.mipmap.tejiaqu));
    mclassify.add(new Classify("蛋类", R.mipmap.danlei));
    mclassify.add(new Classify("肉禽", R.mipmap.rouqing));
    mclassify.add(new Classify("积分商城", R.mipmap.jifengshangcheng));
    mclassify.add(new Classify("畅销区", R.mipmap.changxiaoqu));
}

 数据封装:

private List<String> mDatas_jiazheng = new ArrayList<>(Arrays.asList("土豆", "黄瓜", "小白菜", "茄子", "豆芽", "豆腐", "葱花", "小米"));
private List<String> mDatas_jiaoyu = new ArrayList<>(Arrays.asList("苹果", "鸭梨", "葡萄", "哈密瓜", "红提子", "青提子", "驴蹄子", "马蹄子"));
private List<String> mDatas_liren = new ArrayList<>(Arrays.asList("大鱼", "小鱼", "海带", "带鱼", "虾米", "螃蟹", "娃娃鱼", "鲤鱼"));
private List<String> mDatas_xiuxian = new ArrayList<>();
private List<String> mDatas_yundong = new ArrayList<>();
private List<String> mDatas_meishi = new ArrayList<>();
private List<String> mDatas_hua = new ArrayList<>();
private List<String> mDatas_shi = new ArrayList<>();
 

加载数据:

public class ClassifydetilActivity extends AppCompatActivity {
    private ExpandableListView listView;
    public static List<Classify> mclassify;
    /**
     * 所有分组的所有子项的 GridView 数据集合
     */
    public static List<List<String>> itemList = new ArrayList<>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_classifydetil);
        initData();
        init();
    }

    数据源:

public class MyExpandableListViewAdapter extends BaseExpandableListAdapter {

    private Context mContext;

    /**
     * 每个分组的名字的集合
     */
    private List<Classify> groupList;

    /**
     * 所有分组的所有子项的 GridView 数据集合
     */
    private List<List<String>> itemList;

    private NoScrollGridView gridView;

    public MyExpandableListViewAdapter(Context context, List<Classify> groupList,
                                       List<List<String>> itemList) {
        mContext = context;
        this.groupList = groupList;
        this.itemList = itemList;
    }

    @Override
    public int getGroupCount() {
        return groupList.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return 1;
    }

    @Override
    public Object getGroup(int groupPosition) {
        return groupList.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return itemList.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 false;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup
            parent) {
        if (null == convertView) {
            convertView = View.inflate(mContext, R.layout.classify_list_ltem, null);
        }
        ImageView ivGroup = (ImageView) convertView.findViewById(R.id.imageView2);
        ImageView ivGroupHead = (ImageView) convertView.findViewById(R.id.classify_head);
        TextView tvGroup = (TextView) convertView.findViewById(R.id.classify_text);
        // 如果是展开状态,就显示展开的箭头,否则,显示折叠的箭头
        if (isExpanded) {
            ivGroup.setImageResource(R.mipmap.icon_xiangxia);
        } else {
            ivGroup.setImageResource(R.mipmap.icon_xiangshang);
        }
        // 设置分组组名
        tvGroup.setText(groupList.get(groupPosition).name);
        //设置分组图标
        ivGroupHead.setImageResource(groupList.get(groupPosition).headId);
        return convertView;
    }

    @Override
    public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View
            convertView, ViewGroup parent) {
        if (null == convertView) {
            convertView = View.inflate(mContext, R.layout.gradview, null);
        }
        // 因为 convertView 的布局就是一个 GridView,
        // 所以可以向下转型为 GridView
        gridView = (NoScrollGridView) convertView;
        // 创建 GridView 适配器
        MyGridViewAdapter gridViewAdapter = new MyGridViewAdapter(mContext, itemList.get
                (groupPosition));
        gridView.setAdapter(gridViewAdapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(mContext, "点击了第" + (groupPosition + 1) + "组,第" +
                        (position + 1) + "项", Toast.LENGTH_SHORT).show();
            }
        });
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
 

 item_lsit:

<RelativeLayout
    android:padding="8dp"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/classify_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:text="家政服务"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/classify_head"
        android:layout_toEndOf="@+id/classify_head"
        android:layout_marginLeft="12dp"
        android:layout_marginStart="12dp" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/icon_xiangxia"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="11dp"
        android:layout_marginEnd="11dp"
        android:id="@+id/imageView2" />

    <ImageView
        android:id="@+id/classify_head"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:src="@mipmap/ic_launcher"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

 

 

/**
 * 首页分类model
 * zhangy
 * Created by Administrator on 2017/5/15.
 */

public class Classify {
    public String name; //用户名
    public int headId;  //用用户头像资源

    public Classify(String name, int headId)
    {
        super();
        this.name = name;
        this.headId = headId;

    }
    public static class ClassifyBaby1 {
        public String id;
        public String name;
        public String icon;
        public List<ClassifyBaby2> good_class_two;
    }
    public static class ClassifyBaby2 {
        public String id;
        public String name;
        public String icon;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值