歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發實踐:多級列表的封裝與應用

Android開發實踐:多級列表的封裝與應用

日期:2017/3/1 9:52:50   编辑:Linux編程

Android中多級列表可以使用ExpandableListView和SimpleExpandableListAdapter配合來實現,但是,SimpleExpandableListAdapter用起來挺麻煩的,不易理解,而且擴展性也不好,因此,自定義BaseExpandableListAdapter類的子類以及封裝相關的操作,用起來會更加直觀和方便,我把我設計的封裝貼出來供新手參考吧。

GroupList代碼下載

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2013年資料/9月/25日/Android開發實踐:多級列表的封裝與應用

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

首先上效果圖,如圖所示:

1. 首先設計多級列表的標題類

就像文件和文件夾可以統一地用File類來抽象一樣,多級列表的一級標題和二級標題其實也可以用同一個基類來抽象,因此,我設計了一個基類和兩個子類,GroupList,GroupListChild 和 GroupListParent,其實現如下所示:

(1) GroupList 多級列表標題的抽象基類

public abstract class GroupList {
private final String mTitle;

public GroupList(String title) {
mTitle = title;
}

public String getTitle() {
return mTitle;
}

public abstract List<GroupList> getChild();

public abstract int getResource();
public abstract void buildView(View v);
}

(2) GroupListChild 多級列表二級標題子類

public class GroupListChild extends GroupList {

public GroupListChild(String title) {
super(title);
}

@Override
public int getResource() {
return R.layout.grouplist_child;
}

@Override
public List<GroupList> getChild() {
return null;
}

@Override
public void buildView(View v) {

TextView textView = (TextView)v.findViewById(R.id.GroupListChild);
textView.setText(getTitle());
}
}

(3) GroupListParent 多級列表一級標題子類

public class GroupListParent extends GroupList {

private List<GroupList> mPopListChilds;

public GroupListParent(String title,List<GroupList> childs) {
super(title);
mPopListChilds = childs;
}

@Override
public int getResource() {
return R.layout.grouplist_parent;
}

@Override
public List<GroupList> getChild() {
return mPopListChilds;
}

@Override
public void buildView(View v) {

TextView textView = (TextView)v.findViewById(R.id.GroupListParent);
textView.setText(getTitle());
}
}

Copyright © Linux教程網 All Rights Reserved