【问题标题】:How to implement Click Listener in ExpandableListView如何在 ExpandableListView 中实现 Click Listener
【发布时间】:2016-05-10 10:01:49
【问题描述】:

我有一个自定义适配器,它扩展了BaseExpandableListAdapter

我希望我的ExpandableList 在单击某些TextView 时展开和折叠。

我应该如何实现它?

我想,我必须将OnClickListener 添加到方法getGroupViewgetChildView。我看到了,有布尔标志isExpanded

所以它应该是这样的:

@Override
public View getGroupView(int groupPosition, final boolean isExpanded,
                         View convertView, ViewGroup parent) {
textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (isExpanded){

               //What should i write here?
            }
        }
    });
    return convertView;
}

但是我应该在OnClickListener 中写些什么呢?我找不到任何可以让我展开/折叠列表视图的功能。

有没有类似listView.expandGroup(itemPosition);的函数?

【问题讨论】:

    标签: android expandablelistview expandablelistadapter


    【解决方案1】:

    实际上有一个ExpandableListView.expandGroup。而且是逆向操作collapseGroup

    如果您所指的TextView 在列表视图项内,那么您对适配器内onClickListener 内的操作是正确的。这个post 谈论动态扩展ExpandableListView,我认为你可以得到这个想法并扭转行动以实现你的目标。

    希望这会有所帮助。干杯! :D

    【讨论】:

    • 主要问题是我有一个 3 级可扩展列表。所以我有一个ParentAdapterChildAdapter。在 Parent 我创建我的自定义 ExpendableList 并将其设置为 ChildAdapter: expList.setAdapter(new ChildAdapter(...);
    • By ParentAdapter 是为GroupHeaders 而ChildAdapter 是为Group 内的项目?
    • 是的,你完全正确。所以我需要在ChildAdapter 中使用collapseGroup 方法,但我不知道如何将我的自定义ExpandableList 转移到我的ChildAdapter
    • Hmm.. 您可以在 ChildAdapter 构造函数中简单地传递 ExpandableListView 的引用,然后从内部相应地使用它。 :)
    • 天哪,你是我的救星,我怎么会这么瞎。这是最明显的选择。谢谢!
    【解决方案2】:

    您希望在单击时用作组的展开或折叠按钮的 TextView 必须是 ExpandableListViewAdapter 的标题。

    您还有 setOnGroupExpandListener 和 setOnGroupCollapseListener,它们在组展开或折叠时触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      相关资源
      最近更新 更多