我从sqlite数据库中检索数据并将其显示在listview中。 这里是结果列表视图:
**Name**
Adam
Frank
James
Mike
.......
使用此代码点击名称,我将获得他在listview中的位置。
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id).
结果:
亚当=位置0
Frank =位置1
詹姆斯=位置2
迈克=位置3
现在,如果我使用WHERE子句检索数据
(e.g. SELECT * from my table WHERE name like "James")
结果列表视图是:
**Name**
James
然后点击James我得到位置0。
相反,如何定位2?
谢谢。
答案 0 :(得分:2)
你可以再次重新查询并获得应该为2的行ID。 或者在单击列表项(clickListener)时,您可以将光标移动到该位置cursor.moveToPosition(position),然后您也可以通过提取光标来获取长行值。
答案 1 :(得分:0)
您将获得位置0,因为您在结果数组中只有一个元素。您需要使用一个哈希映射,其中name与name绑定并从name获取值。
示例:HashMap names = new HashMap
从数据库中获取结果时,您的hashmap将包含像
这样的键值&LT;&#34;詹姆斯&#34;&#34; 2&#34;&GT;
现在通过关键詹姆斯提取值2。