如何创建自定义ExpandableListview

时间:2014-03-05 02:33:04

标签: android listview expandablelistview

我想使用ListViewExpandableListView创建一个Android应用程序来自定义该列表中的行,就像这张图片一样。 enter image description here

我该怎么做?任何帮助将非常感激!谢谢!

1 个答案:

答案 0 :(得分:1)

因为您需要一些可点击的项目来显示其他信息(点击联系人)和其他不可点击的项目(联系人列表的起始字母表)然后使用ExpandableListView将是理想的解决方案这样的问题。

首先,您需要开发一个自定义的ExpandableListView适配器。请参阅此http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

实现此自定义适配器后,我们将遇到两个额外的问题,

  • 可选择的项目和不可选择的其他项目,可选项目是联系人项目,不可选项目是字母表。为此,您可以查看Expandandable listview with child items at root
  • 对具有多个视图的项目进行分组,在这种情况下,您需要添加以下两种方法:

final int VIEWTYPE_GROUP_CONTACT = 0;
final int VIEWTYPE_GROUP_ALPHABET = 1;
final int VIEWTYPE_GROUP_COUNT = VIEWTYPE_GROUP_ALPHABET + 1;

...

@Override
public int getGroupTypeCount() {
    return VIEWTYPE_GROUP_COUNT;
}

@Override
public int getGroupType(int groupPosition) {
    if (mGroupCollection.get(groupPosition) instanceof Alphabet)
        return VIEWTYPE_GROUP_ALPHABET;
    if (mGroupCollection.get(groupPosition) instance of ContactDetails)
        return VIEWTYPE_GROUP_CONTACT;

    return super.getGroupType(groupPosition);
}