单击ListView时显示项目

时间:2012-04-27 08:51:33

标签: android listview dialog

我需要特定任务的帮助:

我的主要活动中有一个ListView与自定义Adapter关联,OnItemLongClick监听器显示Dialog并配置了多个操作(更改数量,取消项目......)它就像一个魅力。

我的目标是在Dialog中拥有所点击项目的实际副本,以立即显示所做的更改。

由于我的ListView项目很复杂且由Adapter设计,我不能只获得对原始对象的引用,我需要一个所选ListView项目的可视化副本...

我考虑过创建相同的结构(ListViewAdapter),只关联所选的项目,但它有点沉重......

在这种情况下,是否有更简单的解决方案可以帮助我?我的意思是原始ListView项目的真实副本,其中Dialog对原始对象所做的更改...

2 个答案:

答案 0 :(得分:1)

发布您的相关代码可能有助于我们更清晰地为您提供指导。

但是,您可以使用onItemLongClick((AdapterView, View, int position, long)参数

position中获取对象
YourObject objReference = yourActivityClassObjectList.get(position);

现在显示对话框时,将此objReference传递给您的对话框,当进行更改时,更改此objReference的内容并致电

adapter.notifyDataSetChanged();

而不是将objReference传递给对话框,您可以传递int position并在进行更改时获取对该对象的引用,更改内容并将数据集更改为适配器。

答案 1 :(得分:1)

当您单击一个listview项时,应该触发onListItemClick回调。正如您在文档中看到的,第三个参数是position。您可以致电YourAdapter.getItem(int)listview position {{1}}重审元素保留