从listview获取位置

时间:2015-05-01 18:31:43

标签: android sqlite listview

我从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?

谢谢。

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。