2011-08-03 133 views
0

我试图让我的列表项目中显示一个按钮(在XML中声明为android:visibility:“gone”),以在我对其执行某些手势时显示为可见。然而,我怎样才能正确地通知getView方法来显示仅在列表视图项上的按钮?仅在特定列表视图项目上显示项目


我试过使用getChildAt(position),它最终一次显示几个按钮。

我尝试通过位置为例,我发现手势是从pointToPosition执行,并将其传递到适配器中以显示getView方法,但它具有同时显示几个相同的问题。

有谁知道我该如何解决这个问题?

+0

你用什么事件处理程序为手势?你指的是哪个getView方法? –

+0

@Dan getView方法我指的是适配器类中的那个。我做了一个“自制”的手势方法,如果执行了这样的手势,则返回true。 –

+0

@Dan基本上,当MOTIONEVENT检测到一个动作时,我会通过pointToPosition方法记录它的选定项索引。这对我来说应该足以识别我需要显示按钮的ID。 –

回答

0

我想你可能会误解Adapter.getView()如何在呈现ListView时创建或重新使用布局,它也需要快速,所以不鼓励在此方法中使用条件操作。虽然ListView.getChildAt()可能工作,但它不能有效地使用API​​。除非您使用ArrayAdapter,否则您的适配器将具有setViewBinder()(如果是这样,我建议使用SimpleAdapter是因为附加功能)。使用ViewBinder实现来切换按钮的可见性。

如果您希望继续使用ArrayAdapter,请使用ListView.getChildAt(int)findViewById(R.id.your_button).setVisibility()。如果这是您已经尝试过的,并且将所有按钮设置为可见,请发布相关代码。

+0

谢谢,我将不得不尝试查看是否可以将代码恢复到之前的状态,并且如果可以的话将代码发布。谢谢。 –