Android: get position of item in a listview given its id:

android, listview

Solution

No. You have to do it manually. Create a public method inside the adapter you are using; in that method, loop on the adapter items and check each item id. If it is == to the method param, then return the index.

public int getItemPosition(long id)
{
    for (int position=0; position<mList.size(); position++)
        if (mList.get(position).getId() == id)
            return position;
    return 0;
}

Update: You might as well save a HashMap for position/id in your adapter, if lookup performance represents a problem for your use case.

Update: If you want to use this method outside the adapter, then use below:

private int getAdapterItemPosition(long id)
{
    for (int position=0; position<mListAdapter.getCount(); position++)
        if (mListAdapter.get(position).getId() == id)
            return position;
    return 0;
}

Problem

`getItemIdAtPosition()` is a function in android used to get the id of an item in a list view given its position is there any way of doing the reverse, i.e. getting the position of an item is a list view given its id?

Original source