如何在 listview onClick() 中从 POJO 获取项目?
Posted
技术标签:
【中文标题】如何在 listview onClick() 中从 POJO 获取项目?【英文标题】:How to get Item from POJO in listview onClick()? 【发布时间】:2019-08-28 19:42:47 【问题描述】:我有一个 POJO,它描述了一些模型(项目?)和一些自定义适配器。
我正在为 ListView 设置我的适配器,然后,在 onItemClick() 中,我想获取已添加到项目中的变量之一的值。
我怎样才能做到这一点?
在我的代码中,我正在做类似的事情:
private List<SomeItem> items = new ArrayList();
items.add(new SomeItem(firstValueString, secondValueBitmap, thirdValueString));
SomeAdapter adapter = new SomeAdapter(this, R.layout.list_item, items);
listView.setAdapter(adapter);
listView.setOnItemClickListener(
...
@Override
public void onItemClick()
//How to reach for example firstValueString value of currently clicked item??
)
【问题讨论】:
【参考方案1】:使用android.widget.AdapterView.OnItemClickListener
:
listView.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
+ id);
SomeItem item = items.get(position); // specific item
);
【讨论】:
正是我需要的。【参考方案2】:基于 Android SDK 文档:
如果实现者需要访问与所选项目关联的数据,他们可以调用 getItemAtPosition(position)。
如果你完全实现你的适配器,那么你可以得到如下项目:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
Item item = (Item)parent.getItemAtPosition(position);
);
【讨论】:
以上是关于如何在 listview onClick() 中从 POJO 获取项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何在颤动中从 ListView 中删除默认的 ScrollBar?
如何在flutter中从firebase数据填充listview
如何在 C# WPF 中从 ListView/XML 中完全删除一个项目?
单击 Listview 中的项目时,如何在新活动中从 Firebase 检索数据?