У меня есть ListView, содержимое которого может измениться в любой момент (например, список городов в состоянии, новый город может быть добавлен в состояние в нашей базе данных в любое время). Как я могу реализовать, если это возможно, событие onListItemClick для работы с этим? Например, если пользователь выбирает определенный город в ListView, я должен иметь возможность передать значение, которое независимо определяет, какой город был нажат на мое следующее действие. Я не могу слушать позиции, потому что они могут измениться с добавлением или удалением города. Какие-либо предложения?Использование onListItemClick с управляемым данными ListView
1
A
ответ
1
В этом случае вы должны написать свой собственный адаптер (например, расширение BaseAdapter
) и перезаписать getItemId
метод:
@Override
public long getItemId(int posicion) {
return somethingThatIdentifyTheCityThatWasClicked;
}
Остальное будет кусок пирога, так как метод onListItemClick
получает этот идентификатор:
@Override
protected void onListItemClick(ListView l, View v, int position, long thisID)
{
// use the 'thisID' variable
}
Я собираюсь попробовать это и вернуться к вам, но похоже, что это именно то, что мне нужно. Благодаря! – bschultz
Кажется, я не могу заставить это работать. Можете ли вы объяснить немного больше? – bschultz
Можете ли вы поделиться кодом, который используете? – Cristian