Android 关于ExpandableListView二级菜单的问题
2017-02-10 09:36
417 查看
下面是代码: activity_main.xml
父布局lv_group.xml
子布局lv_children.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); } } }
效果:
相关文章推荐
- android 动画的Interpolator插值器
- Android BaseAdapter的使用
- Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框
- Android getResources().getColor() 过时 替代方法
- Android自定义软键盘的实现
- Android APK瘦身
- Android自定义彩色织带分割线
- Android 代码混淆 webview混淆
- Android 平时用到比较多的广播之飞行模式和耳机插拔
- Android 和html的互相调用
- Android应用开发:CardView的使用及兼容
- Android Studio中gradle的一些玩法
- android知识回顾之view工作流程
- android 如何判断开机完成
- Android中USB打印机无法创建/dev/usb/lp0节点
- Android软键盘状态弹出与消失的示例
- Android设计模式之观察者模式
- Tomact和MySql搭建android简单服务器
- Android ContentProvider查看/读取手机联系人实例
- 安卓项目运行Unsupported major.minor version 52.0处理方法