0

大家好,我正在尝试通过单击可扩展列表中的子项来更改父项的值。我一直在寻找解决方案,但找不到任何东西。

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int              childPosition, long id){
            ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter();
            String selectedItem = (String)itemAdapter.getChild(groupPosition, childPosition);
            groupHeader(selectedItem);
            if(parent.isGroupExpanded(groupPosition)){
                parent.collapseGroup(groupPosition);
            }

            return true;
        }

    });
4

1 回答 1

0

ExpandableListView 依赖于适配器来获取其值。这些值来自某种数据结构,通常是 ArrayList 甚至是简单的数组。在 onChildClick() 中,传递对用于构建 ExpandableListAdapter 的数据结构的引用并直接修改数据结构,然后调用 notifyDataSetChanged()。

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id)
{
        ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter();
        String selectedItem = (String)itemAdapter.getChild(groupPosition, childPosition);
        groupHeader(selectedItem);
        if(parent.isGroupExpanded(groupPosition))
        {
            parent.collapseGroup(groupPosition);
        }
        // your logic here
        // expandableListArrayList.add() or expandableListArrayList.remove()
        // or whatever 
        itemAdapter.notifyDataSetChanged();

        return true;
    }
});

您可能必须扩展适配器以创建您需要的功能。你的问题有点模糊,因为我看不到你的代码的整体结构,但这应该给你一个运行的开始。

于 2013-05-05T22:45:21.827 回答