【发布时间】:2012-05-01 07:25:42
【问题描述】:
如果我有一个使用 web 服务填充的列表视图,并且每行中添加的元素都有一个存储在数组列表中的唯一 id,该数组列表利用哈希图来存储数据,那么获取数据 id 的最简单方法是什么,那是在行中点击的.. 我正在使用列表中的基本适配器,
任何帮助将不胜感激。
【问题讨论】:
标签: android listview arraylist
如果我有一个使用 web 服务填充的列表视图,并且每行中添加的元素都有一个存储在数组列表中的唯一 id,该数组列表利用哈希图来存储数据,那么获取数据 id 的最简单方法是什么,那是在行中点击的.. 我正在使用列表中的基本适配器,
任何帮助将不胜感激。
【问题讨论】:
标签: android listview arraylist
在列表视图上设置项目单击侦听器。它将返回适配器中单击项目的位置(相当于数组列表中的位置)。您可以使用它来获取 id。
【讨论】:
lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(),lv.getAdapter.getItem(position), Toast.LENGTH_SHORT).show(); } });
TextView tv = (TextView) v.findViewById(R.id.id_of_textview_in_your_layout); tv.getText(); //this will get you the title
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),String.valueOf(position), Toast.LENGTH_SHORT).show();
}
});
第三个参数是列表中Item的位置。
【讨论】:
使用此方法 listView.getItemAtPosition(position)。它有一个你可以使用的位置
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
// Get item at position like this:
// listView.getItemAtPosition(position));
}
});
【讨论】:
如果您使用adapter.getItem(position) 函数,您将能够在该特定位置获取存储在 ListView 中的项目。
更新:这当然是在setOnItemClickListener
【讨论】:
getItem 将为您提供列表中特定位置的项目。尝试查看 Krishnakant Dalal 的答案