如何在listview onClick()中从POJO获取项目?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在listview onClick()中从POJO获取项目?相关的知识,希望对你有一定的参考价值。
我有一个POJO,它描述了一些模型(Item?)和一些自定义适配器。
我正在为ListView设置我的适配器,然后,在onItemClick()中,我想获得我添加到Item中的一个变量的值。
我怎么能达到这个目标?
在我的代码中我做的事情如下:
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??
}
)
答案
使用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
}
});
另一答案
基于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 检索数据?