是否可以根据父适配器的值为android中的ExpandableListView提供不同的子视图?

时间:2013-09-28 09:05:07

标签: android expandablelistview

在我正在处理的应用程序中,我目前使用一个按钮打开一个新的活动,其中包含一个简单的可过滤列表视图。当用户单击列表视图中的一行时,所选值将返回到上一个活动,然后使用它完成某些操作。这意味着我有两个活动来完成一个功能。

我正在寻找一种优雅地结合两者的方法,并认为expandablelistview是要走的路,但我不确定一件事:可以覆盖getChildView(自定义expandablelistview)以扩展不同的视图基于父组适配器中的值?

我的适配器从sqlite数据库中选择两个值,一个名为“Type”的整数和一个名为“Move”的字符串。我只显示“移动”,但将“类型”绑定到隐藏的TextView。如果我实现单个expandablelistview,我需要以某种方式将“Type”传递给下拉列表,以便它可以显示不同的子视图(允许用户输入权重,时间或代表,基于类型值“1”,“2”或“3”。

这是否可以使用覆盖getchildview方法的自定义ELV?我看到你可以获得父位置和子位置,但是除了在单击父级时使用全局变量时,我看不到传递给子级的任何内容以了解值,文本等等。父?

我在这里找到了一个不错的实现:https://github.com/tjerkw/Android-SlideExpandableListView

但是尝试覆盖它似乎太复杂了,所以我只是尝试一个标准的可扩展列表视图。

Thankss!

编辑:这是我正在谈论的一个糟糕的模型。第一个视图只有一个框和一个按钮,第二个视图可能有一个框和一个按钮,但第三个视图有两个框,一个用于重量,一个用于代表,然后是一个按钮。:

enter image description here

1 个答案:

答案 0 :(得分:3)

这样做的方法是为要在ExpandableListView的一个项目中显示的所有可能类型创建一个View Layout。

您只需覆盖适配器getChildView并选择其中的类型和移动。然后,将视图的各个部分设置为View.setVisibility(View.GONE),以确保显示正确的视图。