安卓学习--二级列表BaseExpandableListAdapter
来源:互联网 发布:大数据必须掌握的技术 编辑:程序博客网 时间:2024/06/14 13:08
博客:http://blog.csdn.net/muyang_ren
一、资源文件
array.xml
<?xml version="1.0" encoding="utf-8"?><resources> <!-- group--> <string-array name="group_values"> <item>hello1</item> <item>hello2</item> <item>hello3</item> <item>hello4</item> </string-array> <!-- childs--> <string-array name="child_values1"> <item>aaaaaaa</item> </string-array> <string-array name="child_values2"> <item>bbbbbbb</item> </string-array> <string-array name="child_values3"> <item>ccccccc</item> </string-array> <string-array name="child_values4"> <item>ddddddd</item> </string-array></resources>
color.xml
<?xml version="1.0" encoding="utf-8"?><resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="black">#000000</color> <color name="white">#ffffff</color> <color name="transparent">#00000000</color> <!--header--> <color name="MyAPP_header_color">#7A9DEB</color> <color name="back_white_color">#FDFCFD</color> <!--listview 分隔条颜色--> <color name="childdivider_color">#D3DEEB</color> <!--待选择的--> <color name="line_color">#6bc78b</color> <color name="title_bg">#008B45</color> <color name="setting_item_bg">#dedfe0</color> <color name="back">#efeff4</color> <color name="head_text_color">#008B45</color> <color name="header_color">#ffffff</color> <color name="btn_pressed_color">#008B00</color> <color name="item_text_color">#2b2b2b</color> <color name="item_line_color">#c8c7cc</color></resources>dimens.xml
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> <!--header--> <dimen name="header_height">50dp </dimen> <dimen name="header_imagebutton_height"> 50dp </dimen> <dimen name="header_imagebutton_width"> 50dp </dimen> <dimen name="title_button_width"> 50dp </dimen> <dimen name="title_textview_width"> 100dp</dimen> <!-- list view--> <dimen name="parent_list_height"> 30dp </dimen> <dimen name="group_list_left">10dp</dimen> <dimen name="children_list_height"> 30dp </dimen> <dimen name="children_list_left">15dp</dimen></resources>
二、xml布局
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lianghuiyong.myapplication.MainActivity"> <RelativeLayout android:id="@+id/header_layout" android:layout_width="fill_parent" android:layout_height="@dimen/header_height" android:background="@color/MyAPP_header_color"> <ImageButton android:id="@+id/header_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/header_setting" android:layout_marginLeft="18dp" android:layout_centerVertical="true" android:contentDescription="imagebutton" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:text="@string/header_title" android:layout_centerHorizontal="true" android:layout_centerInParent="true"/> <TextView android:id="@+id/header_exit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:text="@string/header_out" android:clickable="true" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:layout_marginRight="10dp" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:layout_below="@+id/header_layout"> <ExpandableListView android:id="@+id/list_main" android:layout_width="fill_parent" android:layout_height="match_parent" /> </LinearLayout></RelativeLayout>
三、Activity
MainActivity.java
package com.example.lianghuiyong.myapplication;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.ExpandableListView;import com.example.lianghuiyong.myapplication.myappadpter.doubleListAdapter;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MainActivity extends AppCompatActivity { private ExpandableListView main_list = null; private List group = new ArrayList(); private List<List<String>> child = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); main_list =(ExpandableListView)findViewById(R.id.list_main); //获取xml的array-string数组,然后转换成List group = Arrays.asList(getResources().getStringArray(R.array.group_values)); child.add(Arrays.asList(getResources().getStringArray(R.array.child_values1))); child.add(Arrays.asList(getResources().getStringArray(R.array.child_values2))); child.add(Arrays.asList(getResources().getStringArray(R.array.child_values3))); child.add(Arrays.asList(getResources().getStringArray(R.array.child_values4))); Log.d("lhy", "group = " + group); Log.d("lhy", "child = " + child); main_list.setAdapter(new doubleListAdapter(group, child)); }}
四、适配器
package com.example.lianghuiyong.myapplication.myappadpter;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseExpandableListAdapter;import android.widget.LinearLayout;import android.widget.TextView;import com.example.lianghuiyong.myapplication.R;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2015/11/26. */public class doubleListAdapter extends BaseExpandableListAdapter { private List group = new ArrayList(); private List<List<String>> child = new ArrayList<>(); public doubleListAdapter(List group, List<List<String>> child) { this.group = group; this.child = child; Log.d("lhy","group = " + this.group); Log.d("lhy","child = " + this.child); Log.d("lhy","group.size() = " + group.size()); } @Override public int getGroupCount() { return group.size(); } @Override public int getChildrenCount(int groupPosition) { return child.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { return group.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return (child.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; } @Override public View getGroupView(int groupPosition, boolean b, View view, ViewGroup viewGroup) { //实例化 groupText 并设置属性 TextView groupText = new TextView(viewGroup.getContext()); groupText.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)); groupText.setPadding(70, 0, 0, 0); groupText.setTextSize(20); groupText.setText(getGroup(groupPosition).toString());//添加数据 return groupText; } @Override public View getChildView(int groupPosition, int childPosition, boolean b, View view, ViewGroup viewGroup) { //child LinearLayoutshilihua 属性设置 LinearLayout linearLayout = new LinearLayout(viewGroup.getContext()); //child childText实例化并设置属性 TextView childText = new TextView(viewGroup.getContext()); childText.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)); childText.setPadding(70, 0, 0, 0); childText.setTextSize(20); childText.setText(getChild(groupPosition,childPosition).toString()); //返回linearLayout实例 linearLayout.addView(childText); return linearLayout; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; }}
0 0
- 安卓学习--二级列表BaseExpandableListAdapter
- 安卓二级列表 ExpandableListView
- android二级列表(BaseExpandableListAdapter的使用) 仿通话记录
- BaseExpandableListAdapter,二级列表的完全自定义(一)
- 安卓二级列表购物车 略屌略屌 一个类足矣
- android BaseExpandableListAdapter 二级菜单适配器
- Android ExpandableListView 进行二级扩展 (BaseExpandableListAdapter)
- 安卓ExpandableListAdapter的二级列表监听问题--自动收缩问题
- (安卓) 购物车二级列表,计算和全反选 以及 EventBus(消息传递)
- BaseExpandableListAdapter应用:QQ好友列表,折叠式列表
- 安卓二级列表的适配器 带优化的 解决二级列表里添加了自定义view以后不能点击展开的问题
- BaseExpandableListAdapter
- BaseExpandableListAdapter
- BaseExpandableListAdapter
- 扩展BaseExpandableListAdapter实现自定义展开式列表
- android:使用BaseExpandableListAdapter实现可折叠的列表
- [Android]BaseExpandableListAdapter实现可折叠的列表
- 可展开列表ExpandableListView—BaseExpandableListAdapter
- Swift创建一个UIImageView
- HTML5创建一个径向/圆渐变
- oracle 11g创建与管理用户
- jsp三个编译指令和七个动作指令
- C语言中switch的用法
- 安卓学习--二级列表BaseExpandableListAdapter
- acm2027
- 让日期输出格式化
- Java- Hibernate 简介
- 关于两个整数的交换的几种写法
- switch
- Git远程操作详解
- javascript生成二维码
- POJ 2309 BST 【lowbit()过】