导读
1.简介
2.手风琴本地数据实现
3.手风琴数据库数据实现
4.手风琴网络数据实现
简介
手风琴本地数据实现
配置文件 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hala.view01">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
主页面布局文件 activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.hala.view01.Main2Activity">
<ExpandableListView
android:id="@+id/elv"
android:layout_width="368dp"
android:layout_height="495dp"
android:groupIndicator="@null">
<!--groupIndicator用于设置条目左侧的图标,null为没有,不设置为下拉箭头-->
</ExpandableListView>
</android.support.constraint.ConstraintLayout>
组的布局文件 item_elv_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:gravity="center">
<TextView
android:id="@+id/txt_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="权利的游戏"
android:textSize="28sp"
android:textColor="#423f4d"/>
</LinearLayout>
子条目的布局文件 item_elv_child.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:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/txt_child_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="血色婚礼"
android:textSize="20sp"
android:textColor="#d69842"
android:paddingLeft="30dp"/>
<TextView
android:id="@+id/txt_child_learner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2222"
android:textSize="20sp"
android:textColor="#d69842"
android:paddingLeft="30dp"/>
</LinearLayout>
本地数据文件 LocalData.java
package com.hala.view01;
import java.util.ArrayList;
import java.util.List;
/**
* Created by air on 2018/3/6.
*/
public class LocalData {
/**
* 获取列表组的数据
* @return
*/
public static List<String> getGroupData(){
List<String> groups=new ArrayList<String>();
groups.add("权利的游戏第一季");
groups.add("权利的游戏第二季");
return groups;
}
/**
* 获取子条目的数据
* @return
*/
public static List<List<String>> getChildData(){
List<List<String>> childs= new ArrayList<List<String>>() ;
List<String> item1=new ArrayList<String>();
item1.add("龙的诞生");
item1.add("耐得史塔克之死");
childs.add(item1);
List<String> item2=new ArrayList<String>();
item1.add("红袍女的出现");
item1.add("少狼主起兵");
item2.add("弑君者被抓");
childs.add(item2);
return childs;
}
public static List<List<Course>> getChildDataFromNet(List<Course> courses){
List<List<Course>> childs=new ArrayList<List<Course>>();
childs.add(courses);
return childs;
}
}
基础适配器文件 MyBaseAdapter.java
package com.hala.view01;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import java.util.List;
/** 基础适配器
* Created by air on 2018/3/6.
*/
public abstract class MyBaseAdapter<T> extends BaseExpandableListAdapter {
private List<String> groups;
private List<List<T>> childs;
Context mcontext;
LayoutInflater mlayoutInflater;
public MyBaseAdapter(Context context){
mcontext=context;
mlayoutInflater=LayoutInflater.from(mcontext);
}
public void addNewData(List<String> groups,List<List<T>> childs){
this.groups=groups;
this.childs=childs;
}
/**
* 获取组的数量
* @return
*/
@Override
public int getGroupCount() {
return groups.size();
}
/**
* 获取组的id
* @param groupPosition 组的位置
* @return
*/
@Override
public long getGroupId(int groupPosition) {
return 0;
}
/**
* 获取组的视图
* @param groupPosition 组的位置
* @param isExpanded 组是否是展开的
* @param convertView 视图
* @param parent 环境
* @return
*/
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView