Android 关于ExpandableListView二级菜单的问题

来源:互联网 发布:程序员的岗位职责 编辑:程序博客网 时间:2024/05/02 23:56

下面是代码: 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
原创粉丝点击