Android 关于ExpandableListView二级菜单的问题

下面是代码: activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >  
    <ExpandableListView  
        android:id="@+id/expandableListView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent" />  
</LinearLayout>

父布局lv_group.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="horizontal"  
    android:padding="15dp" >  

     <TextView  
        android:id="@+id/tv_group"  
        android:layout_width="match_parent"  
        android:layout_height="40dp"  
         android:textColor="#000000"  
         android:layout_marginLeft="10dp"  
        android:textSize="15sp"  
        android:gravity="left|center_vertical"  
         />  
</LinearLayout>

子布局lv_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="horizontal"  
    >  

     <TextView  
        android:id="@+id/user_name"  
        android:layout_width="match_parent"  
        android:layout_height="40dp"  
        android:textColor="#000000"  
        android:textSize="15sp"  
        android:layout_marginLeft="10dp"  
        android:gravity="left|center_vertical"  
        />  
</LinearLayout>

下面是主代码:

package com.example.text;  

import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  

import android.app.Activity;  
import android.os.Bundle;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.ViewGroup;  
import android.widget.BaseExpandableListAdapter;  
import android.widget.ExpandableListView;  
import android.widget.TextView;  

public class MainActivity extends Activity {  
    private ExpandableListView expandableListView;  
    private List<Map<String, Object>> data_list = new ArrayList<Map<String, Object>>();  
    private List<Map<String, Object>> data_list1 = new ArrayList<Map<String, Object>>();  
    private String[] content = { "设备", "设备", "设备", "设备", "设备", "设备", "设备",  
            "设备", "设备", "设备" };  
    private String[] content1 = { "机型类别", "机型类别", "机型类别", "机型类别", "机型类别",  
            "机型类别", "机型类别" };  
    private MyAdapter adapter;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  

        expandableListView = (ExpandableListView) findViewById(R.id.expandableListView);  
        data();  
        data1();  
        adapter = new MyAdapter(data_list, data_list1);  
        expandableListView.setAdapter(adapter);  

    }  

    public class MyAdapter extends BaseExpandableListAdapter {  
        List<Map<String, Object>> data_list;  
        List<Map<String, Object>> data_list1;  

        public MyAdapter(List<Map<String, Object>> data_list, List<Map<String, Object>> data_list1) {  
            this.data_list = data_list;  
            this.data_list1 = data_list1;  
        }  

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

        @Override  
        public int getChildrenCount(int groupPosition) {  
            return data_list.size();  
        }  

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

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

        /** 
         * 显示:group 
         */  
        @Override  
        public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {  
            ViewGroupHolder holder;  
            if (convertView == null) {  
                convertView = LayoutInflater.from(MainActivity.this).inflate(  
                        R.layout.lv_group, null);  
                holder = new ViewGroupHolder();  
                holder.tv_group = (TextView) convertView  
                        .findViewById(R.id.tv_group);  
                convertView.setTag(holder);  
            } else {  
                holder = (ViewGroupHolder) convertView.getTag();  
            }  
            holder.tv_group.setText((String) data_list1.get(groupPosition).get(  
                    "content1"));  
            return convertView;  

        }  

        /** 
         * 显示:child 
         */  
        @Override  
        public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {  
            ViewChildrenHolder holder;  
            if (convertView == null) {  
                convertView = LayoutInflater.from(MainActivity.this).inflate(  
                        R.layout.lv_children, null);  
                holder = new ViewChildrenHolder();  
                holder.tv_name = (TextView) convertView  
                        .findViewById(R.id.user_name);  

                convertView.setTag(holder);  
            } else {  
                holder = (ViewChildrenHolder) convertView.getTag();  
            }  
            holder.tv_name.setText((String) data_list.get(childPosition).get(  
                    "content"));  

            return convertView;  
        }  

        class ViewGroupHolder {  
            TextView tv_group;  
        }  

        class ViewChildrenHolder {  
            TextView tv_name;  
        }  

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

    }  

    private void data() {  
        for (int i = 0; i < content.length; i++) {  
            Map<String, Object> map = new HashMap<String, Object>();  
            map.put("content", content[i]);  
            data_list.add(map);  
        }  
    }  

    private void data1() {  
        for (int j = 0; j < content1.length; j++) {  
            Map<String, Object> map1 = new HashMap<String, Object>();  
            map1.put("content1", content1[j]);  
            data_list1.add(map1);  
        }  
    }  
}

效果: 输入图片说明 输入图片说明

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值