Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android之可收縮展開列表ExpandableList

Android之可收縮展開列表ExpandableList

編輯:Android開發實例

在Android的app包中,有這麼一個類,這個類繼承自Activity,它叫ExpandableListActivity。顧名思義,從它的名字可以看出該類是一種可擴展性的列表List,我們這裡理解成可伸縮的列表,也就是通過繼承ExpandableListActivity 可以實現列表的可展開/收縮的功能。

在介紹之前我們先看下程序的運行結果,如下圖所示。

本文我們主要介紹這種列表的顯示是如何實現的,在ListActivity的使用中,我們知道一旦繼承了ListActivity,該類就意味這具備了List的功能,同樣的,我們將一個類繼承了ExpandableListActivity,就可以直接調用該類本身的ExpandableList對象,並直接賦予一個自定義的適配器setListAdapter(adapter);,因此,整個實現的重心放在如何設計這個適配器上面,以下是適配器的一個舉例。

public class mExpandableListAdapter extends BaseExpandableListAdapter {
// 父列表數據
private String[] groups =
{
“隨時隨地”,
“即興時代”,
“FENGFLY.COM”,
};
// 子列表數據
private String[][] children =
{
{ “即興” },
{ “隨時隨地”, “即興時代” },
{ “隨時隨地”, “即興時代”, “FENGFLY.COM” },
};
@Override
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

@Override
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}

// 取子列表中的某一項的 View
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getChild(groupPosition, childPosition).toString());
return textView;
}

@Override
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}

@Override
public int getGroupCount() {
return groups.length;
}

@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

//父列表中的某一項的View
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getGroup(groupPosition).toString());
return textView;
}

@Override
public boolean hasStableIds() {
return true;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
//獲取某一項的View
private TextView getGenericView() {
TextView textView = new TextView(_ExpandableList.this);
return textView;
}
}

可以看出,在實現可伸縮列表上,我們需要集中精神把重頭戲放在這個適配器上面。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved