ExpandableListView如何进行二级扩展(SimpleExpandableListAdapter)
来源:互联网 发布:ubuntu 打开jupyter 编辑:程序博客网 时间:2024/06/06 19:54
在网上搜索,发现现在在操作ListView上面,进行二级扩展的是ExpandableListView,但一般会有三种方式进行操作。
一是使用SimpleExpandableListAdpater将两个List集合包装成ExpandableListView
二是 扩展BaseExpandableListAdpter
三是使用simpleCursorTreeAdapter将Cursor中的数据包装成SimpleCuroTreeAdapter。
这里面先说一下:SimpleExpandableListAdpater操作
首先我们需要知道一级菜单和二级菜单,一般我们以groups为一级,childs为子级。
先看下,groups.xml布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/textGroup" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="40px" android:paddingTop="6px" android:paddingBottom="6px" android:textSize="25sp" android:text="No data" /></LinearLayout>
子级布局文件childs.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/textChild" android:layout_width="200dp" android:layout_height="wrap_content" android:paddingLeft="60px" android:paddingTop="10px" android:paddingBottom="10px" android:textSize="20sp" android:text="No Data" android:layout_marginLeft="0dp"/></LinearLayout>
显示当前界面的布局文件,我是以steam.xml文件命名的
<?xml version="1.0" encoding="utf-8"?><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/expandable" android:layout_width="fill_parent" android:layout_height="fill_parent" /></LinearLayout>
我本人是在Fragment里面进行操作二级扩展的和普通的activity有点不同,但大同小异。java文件
public class StreamFragment extends Fragment { List<Map<String, String>> gruops = new ArrayList<Map<String, String>>(); List<List<Map<String, String>>> childs = new ArrayList<List<Map<String, String>>>(); private ExpandableListView ep; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View messageLayout = inflater.inflate(R.layout.stream, container, false); ep = (ExpandableListView) messageLayout.findViewById(R.id.expandable); setListData(); return messageLayout; } /** * 设置列表内容 */ public void setListData() { // 创建一级条目标题 String[] names ={"1月","2月"}; //创建二级标题 String[][] child_names= {{"费用","衣服","用品"},{"老家", "学校","美丽"}}; for(int i=0;i<names.length;i++){ Map<String,String> namedata = new HashMap<String ,String>(); namedata.put("names",names[i]); gruops.add(namedata); List<Map<String, String>> child_map = new ArrayList<Map<String, String>>(); for(int j=0;j<child_names[0].length;j++) { Map<String,String> mapcs = new HashMap<String,String>(); mapcs.put("child_names",child_names[i][j]); child_map.add(mapcs);// System.out.println(child_map); } childs.add(child_map);// System.out.println(childs); } /** * 创建ExpandableList的Adapter容器 参数: 1.上下文 2.一级集合 3.一级样式文件 4. 一级条目键值 * 5.一级显示控件名 6. 二级集合 7. 二级样式 8.二级条目键值 9.二级显示控件名 * */ SimpleExpandableListAdapter sela = new SimpleExpandableListAdapter( getActivity(), gruops, R.layout.groups, new String[]{"names"}, new int[]{R.id.textGroup}, childs, R.layout.childs, new String[]{"child_names"}, new int[]{R.id.textChild,R.id.imageChild}); // 加入列表 ep.setAdapter(sela); }}
这里面可能需要自己补充知识,关于如何在activity里面操作Fragement.
这样就可以做出来一个简单的二级展开。
但是这样我发现子级如果需要添加图片,文字和其他自定义的扩展,这个方法不是很合适,只能做元素只有一个子级。(不知道我说的对不对,希望有新用法的朋友给我补充下)
0 0
- ExpandableListView如何进行二级扩展(SimpleExpandableListAdapter)
- Android ExpandableListView 进行二级扩展 (BaseExpandableListAdapter)
- 二级列表SimpleExpandableListAdapter ,ExpandableListAdapter
- 二级ExpandableListView
- SimpleExpandableListAdapter
- SimpleExpandableListAdapter
- SimpleExpandableListAdapter
- Android ExpandableListView (二级列表)
- 二级列表ExpandableListView
- android ExpandableListView二级列表
- 二级列表ExpandableListView
- 二级菜单ExpandableListView
- android 二级ListVew--ExpandableListView
- 二级菜单---ExpandableListView
- ExpandableListView 二级展开列表
- ExpandableListView二级列表
- ExpandableListview二级菜单
- 二级列表ExpandableListView
- PostgreSql 增删改查
- 代码片段
- ListView条目混乱需要注意的几点内容
- 实现C++基本内容之构造函数、析构函数和赋值函数
- leetcode :315. Count of Smaller Numbers After Self :归并排序应用
- ExpandableListView如何进行二级扩展(SimpleExpandableListAdapter)
- Struts2+Jquery+JSON 实现ajax注册信息
- cookie跨域
- 当继承AppCompatActivity使用侧滑时出现白色的问题
- Tableview中Dynamic Prototypes动态表的使用
- HashMap学习
- java.lang.IllegalArgumentException: Service Intent must be explicit
- php crypt in python
- PHP判断字符串是纯英文、纯汉字或汉英混合