我需要特定任务的帮助:
我的主要活动中有一个ListView
与自定义Adapter
关联,OnItemLongClick
监听器显示Dialog
并配置了多个操作(更改数量,取消项目......)它就像一个魅力。
我的目标是在Dialog
中拥有所点击项目的实际副本,以立即显示所做的更改。
由于我的ListView项目很复杂且由Adapter
设计,我不能只获得对原始对象的引用,我需要一个所选ListView项目的可视化副本...
我考虑过创建相同的结构(ListView
和Adapter
),只关联所选的项目,但它有点沉重......
在这种情况下,是否有更简单的解决方案可以帮助我?我的意思是原始ListView项目的真实副本,其中Dialog
对原始对象所做的更改...
答案 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}}重审元素保留