如何从Android中的自定义ListView获取点击项目位置?

时间:2011-11-04 04:07:36

标签: java android listview

我正在尝试获取自定义列表视图的位置(从原始列表位置排序后)。这是因为列表项的数据库ID与listview项的位置匹配。所以,我需要得到排序项目与listview项目位置匹配的正确位置。我有这个代码。

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return sampleArrayList.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

但是我发现我需要把这个位置放到我的主要活动中。任何帮助都非常感谢,并提前感谢...

2 个答案:

答案 0 :(得分:1)

我怀疑,我完全理解你的问题和你想要的东西。但我可以建议你可以维护HashMap来存储每个列表视图的位置ID对。

您的CustomAdapter中的

public static HashMap<Integer,String> myList=new HashMap<Integer,String>();
getView()中的

String id= (fetch _id from database);
myList.put(position, id);

现在在您的主要活动中,您可以通过将此行放在OnItemClickListener()的onClick()中来检索每个列表项的_id:

 Long id=Long.parseLong(CustomAdapter.myList.get(position));

答案 1 :(得分:-1)

您可以在自定义适配器mCurrentPosition中定义一个字段,将其设置为方法

View getView(final int position, View convertView, ViewGroup parent) {<
this.mCurrentPosition = position;
....
}

从活动中访问此字段。