2012-01-01 66 views
1

我有一个ListView可以处于两种状态之一 - 查看和编辑。交换ListView项目视图

在观看状态,所述的ListView应该使用一个视图来呈现行 - 一个与非可编辑字段。

在编辑状态下,它应该使用另一个视图 - 一个带有可编辑字段的视图。

当ListView在状态之间切换时,所有的其行应该使用该状态的适当视图。

如果用户已经向下滚动列表中,他/她不应该失去自己的位置时,查看和编辑之间的ListView transitons。

我试过的解决方案之一涉及2个适配器。但是这样做并不好,因为无论何时在ListView上设置适配器,它都会使ListView弹出回到第一行。

非常感谢。

+1

我很抱歉,但仍然不清楚。你可以添加一个截图或更好地描述你的屏幕,以便我们可以理解你的问题?我通过这样做解决了我自己的许多问题。 – 2012-01-02 02:36:41

+0

我没有屏幕截图,但我在描述用例时又采用了另一种方法。 – 2012-01-02 07:40:40

+0

现在好多了,可以理解了。但为什么不能只使用一个getView成员方法将在可编辑和不可编辑字段之间切换的适配器? – 2012-01-02 07:51:47

回答

1

我以前做过这样的事情。我在GalleryAdapter中有一组复杂的视图,其中一个是包含EditText(可编辑位)和TextView(静态部分)的ViewFlipper。 ViewFlipper右侧有一个按钮,当用户按下该按钮时,我会根据需要调用showNext()/showPrevious()以在可编辑视图和可见视图之间切换。

为了澄清,我有一个扩展BaseAdapter的适配器,并且在我的getView()方法中,我将onClickListeners分配给将修改我即将返回的视图中的对象的按钮。

+0

这是在可编辑视图和可见视图之间切换一个“行”的好方法。我需要将所有行切换到可编辑或可见视图。 – 2012-01-02 20:18:24

+1

@Julian,听起来像你需要通过所有行上的循环来运行上述方法,每当有人切换任何行时。 – 2012-01-02 20:29:16

+0

@ Dr.Dredel因此,请保持对所有行视图的引用,并在切换时循环显示? – 2012-01-02 20:52:15